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

Commit ccd4bb1b authored by Steve French's avatar Steve French
Browse files

[CIFS] Don't cache timestamps on utimes due to coarse granularity



force revalidate of the file when any of the timestamps are set since
some filesytem types do not have finer granularity timestamps and
we can not always detect which file systems round timestamps down
to determine whether we can cache the mtime on setattr
samba bugzilla 3775

Acked-by: default avatarShirish Pargaonkar <sharishp@us.ibm.com>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 301a6a31
Loading
Loading
Loading
Loading
+11 −1
Original line number Original line Diff line number Diff line
@@ -1762,8 +1762,18 @@ cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs)
					CIFS_MOUNT_MAP_SPECIAL_CHR);
					CIFS_MOUNT_MAP_SPECIAL_CHR);
	}
	}


	if (!rc)
	if (!rc) {
		rc = inode_setattr(inode, attrs);
		rc = inode_setattr(inode, attrs);

		/* force revalidate when any of these times are set since some
		   of the fs types (eg ext3, fat) do not have fine enough
		   time granularity to match protocol, and we do not have a
		   a way (yet) to query the server fs's time granularity (and
		   whether it rounds times down).
		*/
		if (!rc && (attrs->ia_valid & (ATTR_MTIME | ATTR_CTIME)))
			cifsInode->time = 0;
	}
out:
out:
	kfree(args);
	kfree(args);
	kfree(full_path);
	kfree(full_path);