ceph: don't clobber i_max_offset on already complete dir
This can screw up offsets assigned to new dentries and break dcache readdir results. Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
parent
e8a7498715
commit
1b7facc41b
|
@ -675,7 +675,8 @@ static int fill_inode(struct inode *inode,
|
|||
/* set dir completion flag? */
|
||||
if (ci->i_files == 0 && ci->i_subdirs == 0 &&
|
||||
ceph_snap(inode) == CEPH_NOSNAP &&
|
||||
(le32_to_cpu(info->cap.caps) & CEPH_CAP_FILE_SHARED)) {
|
||||
(le32_to_cpu(info->cap.caps) & CEPH_CAP_FILE_SHARED) &&
|
||||
(ci->i_ceph_flags & CEPH_I_COMPLETE) == 0) {
|
||||
dout(" marking %p complete (empty)\n", inode);
|
||||
ci->i_ceph_flags |= CEPH_I_COMPLETE;
|
||||
ci->i_max_offset = 2;
|
||||
|
|
Loading…
Reference in a new issue