]> git.baikalelectronics.ru Git - kernel.git/commit
ceph: reuse request message when replaying against recovering mds
authorSage Weil <sage@newdream.net>
Thu, 15 Jul 2010 20:24:32 +0000 (13:24 -0700)
committerSage Weil <sage@newdream.net>
Fri, 16 Jul 2010 17:30:17 +0000 (10:30 -0700)
commitf6083772dd3aa0f8a57a0b3d448104cee77afa12
treead478397d935b4b09340408cbacf8c6d35dee9d1
parentc786316040667bde849502680a4d073ccc7e4117
ceph: reuse request message when replaying against recovering mds

Replayed rename operations (after an mds failure/recovery) were broken
because the request paths were regenerated from the dentry names, which
get mangled when d_move() is called.

Instead, resend the previous request message when replaying completed
operations.  Just make sure the REPLAY flag is set and the target ino is
filled in.

This fixes problems with workloads doing renames when the MDS restarts,
where the rename operation appears to succeed, but on mds restart then
fails (leading to client confusion, app breakage, etc.).

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/mds_client.c