diff options
Diffstat (limited to 'fs/cifs/readdir.c')
-rw-r--r-- | fs/cifs/readdir.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c index 1c576e871366..64920920d908 100644 --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c | |||
@@ -137,6 +137,16 @@ cifs_fill_common_info(struct cifs_fattr *fattr, struct cifs_sb_info *cifs_sb) | |||
137 | if (fattr->cf_cifsattrs & ATTR_READONLY) | 137 | if (fattr->cf_cifsattrs & ATTR_READONLY) |
138 | fattr->cf_mode &= ~S_IWUGO; | 138 | fattr->cf_mode &= ~S_IWUGO; |
139 | 139 | ||
140 | /* | ||
141 | * We of course don't get ACL info in FIND_FIRST/NEXT results, so | ||
142 | * mark it for revalidation so that "ls -l" will look right. It might | ||
143 | * be super-slow, but if we don't do this then the ownership of files | ||
144 | * may look wrong since the inodes may not have timed out by the time | ||
145 | * "ls" does a stat() call on them. | ||
146 | */ | ||
147 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) | ||
148 | fattr->cf_flags |= CIFS_FATTR_NEED_REVAL; | ||
149 | |||
140 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL && | 150 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL && |
141 | fattr->cf_cifsattrs & ATTR_SYSTEM) { | 151 | fattr->cf_cifsattrs & ATTR_SYSTEM) { |
142 | if (fattr->cf_eof == 0) { | 152 | if (fattr->cf_eof == 0) { |