ceph: fetch inline data when getting Fcr cap refs
authorYan, Zheng <zyan@redhat.com>
Fri, 14 Nov 2014 14:10:07 +0000 (22:10 +0800)
committerIlya Dryomov <idryomov@redhat.com>
Wed, 17 Dec 2014 17:09:52 +0000 (20:09 +0300)
we can't use getattr to fetch inline data after getting Fcr caps,
because it can cause deadlock. The solution is try bringing inline
data to page cache when not holding any cap, and hope the inline
data page is still there after getting the Fcr caps. If the page
is still there, pin it in page cache for later IO.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
fs/ceph/addr.c
fs/ceph/caps.c
fs/ceph/file.c

diff --cc fs/ceph/addr.c
Simple merge
diff --cc fs/ceph/caps.c
Simple merge
diff --cc fs/ceph/file.c
Simple merge