linux-stable/fs/ceph
Yan, Zheng 0a8a70f96f ceph: clear directory's completeness when creating file
When creating a file, ceph_set_dentry_offset() puts the new dentry
at the end of directory's d_subdirs, then set the dentry's offset
based on directory's max offset. The offset does not reflect the
real postion of the dentry in directory. Later readdir reply from
MDS may change the dentry's position/offset. This inconsistency
can cause missing/duplicate entries in readdir result if readdir
is partly satisfied by dcache_readdir().

The fix is clear directory's completeness after creating/renaming
file. It prevents later readdir from using dcache_readdir().

Fixes: http://tracker.ceph.com/issues/8025
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-28 12:54:44 -07:00
..
acl.c ceph: make ceph_forget_all_cached_acls() static inline 2014-02-17 12:37:12 -08:00
addr.c ceph: fix dout() compile warnings in ceph_filemap_fault() 2014-01-28 09:57:06 -08:00
cache.c ceph: fscache: Wait for completion of object initialization 2014-04-03 10:33:53 +08:00
cache.h ceph: fscache: add an interface to synchronize object store limit 2014-04-03 10:33:53 +08:00
caps.c ceph: set mds_wanted when MDS reply changes a cap to auth cap 2014-04-04 21:07:12 -07:00
ceph_frag.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
debugfs.c ceph: print inode number for LOOKUPINO request 2014-04-03 10:33:54 +08:00
dir.c ceph: clear directory's completeness when creating file 2014-04-28 12:54:44 -07:00
export.c ceph: add get_name() NFS export callback 2014-04-03 10:33:53 +08:00
file.c ceph: drop extra open file reference in ceph_atomic_open() 2014-04-04 21:08:23 -07:00
inode.c ceph: clear directory's completeness when creating file 2014-04-28 12:54:44 -07:00
ioctl.c ceph: do not chain inode updates to parent fsync 2014-04-03 10:33:52 +08:00
ioctl.h ceph: fully initialize new layout 2012-05-16 14:28:27 -05:00
Kconfig ceph: add acl for cephfs 2013-12-31 20:32:01 +02:00
locks.c ceph: use fl->fl_file as owner identifier of flock and posix lock 2014-04-04 21:07:11 -07:00
Makefile ceph: add acl for cephfs 2013-12-31 20:32:01 +02:00
mds_client.c ceph: flush cap release queue when trimming session caps 2014-04-04 21:08:26 -07:00
mds_client.h ceph: preallocate buffer for readdir reply 2014-04-04 21:08:22 -07:00
mdsmap.c ceph: tidy ceph_mdsmap_decode() a little 2013-07-01 09:52:02 -07:00
snap.c ceph: use ceph_create_snap_context() 2013-05-01 21:20:09 -07:00
strings.c ceph: add get_name() NFS export callback 2014-04-03 10:33:53 +08:00
super.c ceph: use fl->fl_file as owner identifier of flock and posix lock 2014-04-04 21:07:11 -07:00
super.h ceph: clear directory's completeness when creating file 2014-04-28 12:54:44 -07:00
xattr.c ceph: don't include ceph.{file,dir}.layout vxattr in listxattr() 2014-04-04 21:07:21 -07:00