Messages in this thread | | | Date | Wed, 16 Apr 2014 05:46:18 +0100 | From | Al Viro <> | Subject | Re: [PATCH 17/19] VFS: set PF_FSTRANS while namespace_sem is held. |
| |
On Wed, Apr 16, 2014 at 02:03:37PM +1000, NeilBrown wrote: > namespace_sem can be taken while various i_mutex locks are held, so we > need to avoid reclaim from blocking on an FS (particularly loop-back > NFS).
I would really prefer to deal with that differently - by explicit change of gfp_t arguments of allocators.
The thing is, namespace_sem is held *only* over allocations, and not a lot of them, at that - only mnt_alloc_id(), mnt_alloc_group_id(), alloc_vfsmnt() and new_mountpoint(). That is all that is allowed.
Again, actual work with filesystems (setup, shutdown, remount, pathname resolution, etc.) is all done outside of namespace_sem; it's held only for manipulations of fs/{namespace,pnode}.c data structures and the only reason it isn't a spinlock is that we need to do some allocations.
So I'd rather slap GFP_NOFS on those few allocations...
| |