[CIFS] Fix to problem with getattr caused by invalidate simplification patch

Fix to earlier "Simplify invalidate part (try #6)" patch
That patch caused problems with connectathon test 5.

Reviewed-by: Jeff Layton <jlayton@samba.org>
Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Steve French <sfrench@us.ibm.com>
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index ed92c7d..493b74c 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -617,8 +617,10 @@
 		if (!CIFS_I(inode)->clientCanCacheRead && inode->i_mapping &&
 		    inode->i_mapping->nrpages != 0) {
 			rc = filemap_fdatawait(inode->i_mapping);
-			mapping_set_error(inode->i_mapping, rc);
-			return rc;
+			if (rc) {
+				mapping_set_error(inode->i_mapping, rc);
+				return rc;
+			}
 		}
 		/*
 		 * Some applications poll for the file length in this strange
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 0cc7edd..de02ed5 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1805,8 +1805,10 @@
 	if (!CIFS_I(inode)->clientCanCacheRead && inode->i_mapping &&
 	    inode->i_mapping->nrpages != 0) {
 		rc = filemap_fdatawait(inode->i_mapping);
-		mapping_set_error(inode->i_mapping, rc);
-		return rc;
+		if (rc) {
+			mapping_set_error(inode->i_mapping, rc);
+			return rc;
+		}
 	}
 
 	rc = cifs_revalidate_dentry_attr(dentry);