On Tue 05-06-12 14:28:13, Artem Bityutskiy wrote: > From: Artem Bityutskiy <artem.bityutskiy@xxxxxxxxxxxxxxx> > > The VFS's 'lock_super()' and 'unlock_super()' calls are deprecated and unwanted > and just wait for a brave knight who'd kill them. This patch makes AFFS stop > using them and introduces own AFFS superblock mutex which we use for > serializeing the root block changes. Hum, why not just use the buffer lock for this? Honza > > Signed-off-by: Artem Bityutskiy <artem.bityutskiy@xxxxxxxxxxxxxxx> > --- > fs/affs/affs.h | 1 + > fs/affs/super.c | 5 +++-- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/fs/affs/affs.h b/fs/affs/affs.h > index 45a0ce4..b8af745 100644 > --- a/fs/affs/affs.h > +++ b/fs/affs/affs.h > @@ -108,6 +108,7 @@ struct affs_sb_info { > char *s_prefix; /* Prefix for volumes and assigns. */ > char s_volume[32]; /* Volume prefix for absolute symlinks. */ > spinlock_t symlink_lock; /* protects the previous two */ > + struct mutex s_lock; /* protects the SB's buffer-head */ > }; > > #define SF_INTL 0x0001 /* International filesystem. */ > diff --git a/fs/affs/super.c b/fs/affs/super.c > index 8293cb9..8674915 100644 > --- a/fs/affs/super.c > +++ b/fs/affs/super.c > @@ -31,14 +31,14 @@ affs_commit_super(struct super_block *sb, int wait) > struct buffer_head *bh = sbi->s_root_bh; > struct affs_root_tail *tail = AFFS_ROOT_TAIL(sb, bh); > > - lock_super(sb); > + mutex_lock(&sbi->s_lock); > tail->bm_flag = cpu_to_be32(2); > secs_to_datestamp(get_seconds(), &tail->disk_change); > affs_fix_checksum(sb, bh); > mark_buffer_dirty(bh); > if (wait) > sync_dirty_buffer(bh); > - unlock_super(sb); > + mutex_unlock(&sbi->s_lock); > } > > static void > @@ -299,6 +299,7 @@ static int affs_fill_super(struct super_block *sb, void *data, int silent) > return -ENOMEM; > > sb->s_fs_info = sbi; > + mutex_init(&sbi->s_lock); > mutex_init(&sbi->s_bmlock); > spin_lock_init(&sbi->symlink_lock); > > -- > 1.7.7.6 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html