diff options
-rw-r--r-- | fs/cifs/cifsfs.h | 1 | ||||
-rw-r--r-- | fs/cifs/inode.c | 16 |
2 files changed, 11 insertions, 6 deletions
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h index 89eab9a55f18..63d51274dfbf 100644 --- a/fs/cifs/cifsfs.h +++ b/fs/cifs/cifsfs.h | |||
@@ -75,6 +75,7 @@ extern int cifs_revalidate_dentry_attr(struct dentry *); | |||
75 | extern int cifs_revalidate_file(struct file *filp); | 75 | extern int cifs_revalidate_file(struct file *filp); |
76 | extern int cifs_revalidate_dentry(struct dentry *); | 76 | extern int cifs_revalidate_dentry(struct dentry *); |
77 | extern int cifs_invalidate_mapping(struct inode *inode); | 77 | extern int cifs_invalidate_mapping(struct inode *inode); |
78 | extern int cifs_revalidate_mapping(struct inode *inode); | ||
78 | extern int cifs_getattr(struct vfsmount *, struct dentry *, struct kstat *); | 79 | extern int cifs_getattr(struct vfsmount *, struct dentry *, struct kstat *); |
79 | extern int cifs_setattr(struct dentry *, struct iattr *); | 80 | extern int cifs_setattr(struct dentry *, struct iattr *); |
80 | 81 | ||
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index fa9ef8d902b5..ff420b275777 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -1779,6 +1779,14 @@ cifs_invalidate_mapping(struct inode *inode) | |||
1779 | return rc; | 1779 | return rc; |
1780 | } | 1780 | } |
1781 | 1781 | ||
1782 | int | ||
1783 | cifs_revalidate_mapping(struct inode *inode) | ||
1784 | { | ||
1785 | if (test_bit(CIFS_INO_INVALID_MAPPING, &CIFS_I(inode)->flags)) | ||
1786 | return cifs_invalidate_mapping(inode); | ||
1787 | return 0; | ||
1788 | } | ||
1789 | |||
1782 | int cifs_revalidate_file_attr(struct file *filp) | 1790 | int cifs_revalidate_file_attr(struct file *filp) |
1783 | { | 1791 | { |
1784 | int rc = 0; | 1792 | int rc = 0; |
@@ -1845,9 +1853,7 @@ int cifs_revalidate_file(struct file *filp) | |||
1845 | if (rc) | 1853 | if (rc) |
1846 | return rc; | 1854 | return rc; |
1847 | 1855 | ||
1848 | if (test_bit(CIFS_INO_INVALID_MAPPING, &CIFS_I(inode)->flags)) | 1856 | return cifs_revalidate_mapping(inode); |
1849 | rc = cifs_invalidate_mapping(inode); | ||
1850 | return rc; | ||
1851 | } | 1857 | } |
1852 | 1858 | ||
1853 | /* revalidate a dentry's inode attributes */ | 1859 | /* revalidate a dentry's inode attributes */ |
@@ -1860,9 +1866,7 @@ int cifs_revalidate_dentry(struct dentry *dentry) | |||
1860 | if (rc) | 1866 | if (rc) |
1861 | return rc; | 1867 | return rc; |
1862 | 1868 | ||
1863 | if (test_bit(CIFS_INO_INVALID_MAPPING, &CIFS_I(inode)->flags)) | 1869 | return cifs_revalidate_mapping(inode); |
1864 | rc = cifs_invalidate_mapping(inode); | ||
1865 | return rc; | ||
1866 | } | 1870 | } |
1867 | 1871 | ||
1868 | int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry, | 1872 | int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry, |