]> git.baikalelectronics.ru Git - kernel.git/commit
nfs: don't sleep with inode lock in lock_and_join_requests
authorWeston Andros Adamson <dros@primarydata.com>
Fri, 8 Aug 2014 15:00:57 +0000 (11:00 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Fri, 22 Aug 2014 22:04:43 +0000 (18:04 -0400)
commit5d3fea5cc0883e169d5aae0bab89af7394e485c0
tree44688dff0d435b29531366be55e42f5f99928a9c
parent18aa057f327be4bb4338c6fa81f1e2bed8bcec63
nfs: don't sleep with inode lock in lock_and_join_requests

This handles the 'nonblock=false' case in nfs_lock_and_join_requests.
If the group is already locked and blocking is allowed, drop the inode lock
and wait for the group lock to be cleared before trying it all again.
This should fix warnings found in peterz's tree (sched/wait branch), where
might_sleep() checks are added to wait.[ch].

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Weston Andros Adamson <dros@primarydata.com>
Reviewed-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/pagelist.c
fs/nfs/write.c
include/linux/nfs_page.h