mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-21 14:11:20 +00:00
ceph: clear dir complete on d_move
d_move() reorders the d_subdirs list, breaking the readdir result caching. Unless/until d_move preserves that ordering, clear CEPH_I_COMPLETE on rename. Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
parent
66f41d4c5c
commit
c10f5e12ba
1 changed files with 4 additions and 0 deletions
|
@ -997,6 +997,10 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req,
|
||||||
dn, dn->d_name.len, dn->d_name.name);
|
dn, dn->d_name.len, dn->d_name.name);
|
||||||
dout("fill_trace doing d_move %p -> %p\n",
|
dout("fill_trace doing d_move %p -> %p\n",
|
||||||
req->r_old_dentry, dn);
|
req->r_old_dentry, dn);
|
||||||
|
|
||||||
|
/* d_move screws up d_subdirs order */
|
||||||
|
ceph_i_clear(dir, CEPH_I_COMPLETE);
|
||||||
|
|
||||||
d_move(req->r_old_dentry, dn);
|
d_move(req->r_old_dentry, dn);
|
||||||
dout(" src %p '%.*s' dst %p '%.*s'\n",
|
dout(" src %p '%.*s' dst %p '%.*s'\n",
|
||||||
req->r_old_dentry,
|
req->r_old_dentry,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue