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, |
