diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 27e97d43c75964eb0557c09f6f20dd75f6707eb7..db091c516c2a3a165bded54e1e7664d60d89ed8c 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -752,6 +752,9 @@ cifs_set_file_info(struct inode *inode, struct iattr *attrs, int xid,
 
 set_via_filehandle:
 	rc = CIFSSMBSetFileInfo(xid, pTcon, &info_buf, netfid, netpid);
+	if (!rc)
+		cifsInode->cifsAttrs = dosattr;
+
 	if (open_file == NULL)
 		CIFSSMBClose(xid, pTcon, netfid);
 	else
@@ -902,6 +905,7 @@ int cifs_unlink(struct inode *dir, struct dentry *dentry)
 			if (rc == 0)
 				drop_nlink(inode);
 		}
+		cifsInode->cifsAttrs = dosattr;
 	}
 out_reval:
 	if (inode) {