cifs: new helper function: cifs_revalidate_mapping
authorJeff Layton <jlayton@poochiereds.net>
Wed, 30 Apr 2014 13:31:46 +0000 (09:31 -0400)
committerSteve French <smfrench@gmail.com>
Wed, 21 May 2014 17:18:05 +0000 (10:18 -0700)
Consolidate a bit of code. In a later patch we'll expand this to fix
some races.

Signed-off-by: Jeff Layton <jlayton@poochiereds.net>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/cifsfs.h
fs/cifs/inode.c

index 89eab9a..63d5127 100644 (file)
@@ -75,6 +75,7 @@ extern int cifs_revalidate_dentry_attr(struct dentry *);
 extern int cifs_revalidate_file(struct file *filp);
 extern int cifs_revalidate_dentry(struct dentry *);
 extern int cifs_invalidate_mapping(struct inode *inode);
+extern int cifs_revalidate_mapping(struct inode *inode);
 extern int cifs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
 extern int cifs_setattr(struct dentry *, struct iattr *);
 
index fa9ef8d..ff420b2 100644 (file)
@@ -1779,6 +1779,14 @@ cifs_invalidate_mapping(struct inode *inode)
        return rc;
 }
 
+int
+cifs_revalidate_mapping(struct inode *inode)
+{
+       if (test_bit(CIFS_INO_INVALID_MAPPING, &CIFS_I(inode)->flags))
+               return cifs_invalidate_mapping(inode);
+       return 0;
+}
+
 int cifs_revalidate_file_attr(struct file *filp)
 {
        int rc = 0;
@@ -1845,9 +1853,7 @@ int cifs_revalidate_file(struct file *filp)
        if (rc)
                return rc;
 
-       if (test_bit(CIFS_INO_INVALID_MAPPING, &CIFS_I(inode)->flags))
-               rc = cifs_invalidate_mapping(inode);
-       return rc;
+       return cifs_revalidate_mapping(inode);
 }
 
 /* revalidate a dentry's inode attributes */
@@ -1860,9 +1866,7 @@ int cifs_revalidate_dentry(struct dentry *dentry)
        if (rc)
                return rc;
 
-       if (test_bit(CIFS_INO_INVALID_MAPPING, &CIFS_I(inode)->flags))
-               rc = cifs_invalidate_mapping(inode);
-       return rc;
+       return cifs_revalidate_mapping(inode);
 }
 
 int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry,