Re: [PATCH 2/2] ->write_super lock_super pushdown

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 06, 2009 at 10:36:18PM +0200, Christoph Hellwig wrote:
> On Wed, May 06, 2009 at 10:16:31PM +0200, Christoph Hellwig wrote:
> > Only four filesystems have both a ->write_super method and use lock_super
> > internally: ext4, fat, sysv, ufs.  Push down lock_super into these
> > filesystems and remove it from the caller.  Add a get_fs_excl/put_fs_excl
> > pair to sync_super for now to keep the current behaviour in that
> > respect.  Calling it a second time from write_super is fine as it's
> > only checked for beeing non-zero.
> > 
> > 
> > Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> 
> Actually the patch lost two hunks due to missing quilt adds.  Here's the
> complete one:

That's wrong.  Even if fs does *not* use lock_super(), you can't get
rid of it in ->write_super().  The thing is, right now calls of
foo_write_super() are serialized by s_lock.  For all filesystems that
have ->write_super(), whether they use s_lock elsewhere or not.
Lose lock_super() in the caller and you'll need some replacement in
the method.

IOW, you are missing
	* affs
	* bfs
	* exofs
	* ext2
	* hfs
	* hfsplus
	* jffs2
	* nilfs2
	* reiserfs
	* xfs
in the list.  Some of those might be fine with several calls of ->write_super()
in parallel, but that needs per-fs review for all of those.

NAK in the current form.
--
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

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux