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 New Issue
	
	Block a user