diff options
author | Yan, Zheng <zheng.z.yan@intel.com> | 2014-03-03 09:20:44 +0800 |
---|---|---|
committer | Yan, Zheng <zheng.z.yan@intel.com> | 2014-04-03 10:33:52 +0800 |
commit | 15289dc85b2d03d42d7e479476254be2b17c65d5 (patch) | |
tree | 707fcbc2650015c8217cea0fe5008df38066ba78 /fs | |
parent | dcd3cc05e5f230f8fbc0c3369a5d6ad4f1d23aed (diff) | |
download | op-kernel-dev-15289dc85b2d03d42d7e479476254be2b17c65d5.zip op-kernel-dev-15289dc85b2d03d42d7e479476254be2b17c65d5.tar.gz |
ceph: let MDS adjust readdir 'frag'
If readdir 'frag' is adjusted, readdir 'offset' should be reset.
Otherwise some dentries may be lost when readdir and fragmenting
directory happen at the some.
Another way to fix this issue is let MDS adjust readdir 'frag'.
The code that handles MDS reply reset the readdir 'offset' if
the readdir reply is different than the requested one.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ceph/dir.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index 8ce8833..e9918a0 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c @@ -322,9 +322,6 @@ more: fi->last_readdir = NULL; } - /* requery frag tree, as the frag topology may have changed */ - frag = ceph_choose_frag(ceph_inode(inode), frag, NULL, NULL); - dout("readdir fetching %llx.%llx frag %x offset '%s'\n", ceph_vinop(inode), frag, fi->last_name); req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); |