summaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorYan, Zheng <zyan@redhat.com>2015-02-04 15:10:48 +0800
committerIlya Dryomov <idryomov@gmail.com>2015-02-19 13:31:40 +0300
commit4d41cef279f72f3965140fffa6b48f2a7d51408c (patch)
treea1f4d52a98108b57002941a47965320c712428f4 /drivers/block
parent5cba372c0fe78d24e83d9e0556ecbeb219625c15 (diff)
ceph: return error for traceless reply race
When we receives traceless reply for request that created new inode, we re-send a lookup request to MDS get information of the newly created inode. (VFS expects FS' callback return an inode in create case) This breaks one request into two requests. Other client may modify or move to the new inode in the middle. When the race happens, ceph_handle_notrace_create() unconditionally links the dentry for 'create' operation to the inode returned by lookup. This may confuse VFS when the inode is a directory (VFS does not allow multiple linkages for directory inode). This patch makes ceph_handle_notrace_create() when it detect a race. This event should be rare and it happens only when we talk to old MDS. Recent MDS does not send traceless reply for request that creates new inode. Signed-off-by: Yan, Zheng <zyan@redhat.com>
Diffstat (limited to 'drivers/block')
0 files changed, 0 insertions, 0 deletions