Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b7facc4 authored by Sage Weil's avatar Sage Weil
Browse files

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: default avatarSage Weil <sage@newdream.net>
parent e8a74987
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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;