diff options
author | Brian Foster <bfoster@redhat.com> | 2013-09-20 11:06:12 -0400 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2013-10-08 18:20:41 -0400 |
commit | 74564fb48cbfcb5b433c1baec1f3158ea638b203 (patch) | |
tree | 8c927f98ca8696c01e7ce8e325f4ebb511afc320 /fs | |
parent | 88877d2b9727a14431bfe48216ff86331ab47ea5 (diff) |
xfs: clean up xfs_inactive() error handling, kill VN_INACTIVE_[NO]CACHE
The xfs_inactive() return value is meaningless. Turn xfs_inactive()
into a void function and clean up the error handling appropriately.
Kill the VN_INACTIVE_[NO]CACHE directives as they are not relevant
to Linux.
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/xfs_inode.c | 28 | ||||
-rw-r--r-- | fs/xfs/xfs_inode.h | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_vnode.h | 8 |
3 files changed, 12 insertions, 26 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 223d1a163b2d..5fce7261a64b 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c | |||
@@ -1790,7 +1790,7 @@ xfs_inactive_ifree( | |||
1790 | * now be truncated. Also, we clear all of the read-ahead state | 1790 | * now be truncated. Also, we clear all of the read-ahead state |
1791 | * kept for the inode here since the file is now closed. | 1791 | * kept for the inode here since the file is now closed. |
1792 | */ | 1792 | */ |
1793 | int | 1793 | void |
1794 | xfs_inactive( | 1794 | xfs_inactive( |
1795 | xfs_inode_t *ip) | 1795 | xfs_inode_t *ip) |
1796 | { | 1796 | { |
@@ -1805,16 +1805,14 @@ xfs_inactive( | |||
1805 | if (ip->i_d.di_mode == 0) { | 1805 | if (ip->i_d.di_mode == 0) { |
1806 | ASSERT(ip->i_df.if_real_bytes == 0); | 1806 | ASSERT(ip->i_df.if_real_bytes == 0); |
1807 | ASSERT(ip->i_df.if_broot_bytes == 0); | 1807 | ASSERT(ip->i_df.if_broot_bytes == 0); |
1808 | return VN_INACTIVE_CACHE; | 1808 | return; |
1809 | } | 1809 | } |
1810 | 1810 | ||
1811 | mp = ip->i_mount; | 1811 | mp = ip->i_mount; |
1812 | 1812 | ||
1813 | error = 0; | ||
1814 | |||
1815 | /* If this is a read-only mount, don't do this (would generate I/O) */ | 1813 | /* If this is a read-only mount, don't do this (would generate I/O) */ |
1816 | if (mp->m_flags & XFS_MOUNT_RDONLY) | 1814 | if (mp->m_flags & XFS_MOUNT_RDONLY) |
1817 | goto out; | 1815 | return; |
1818 | 1816 | ||
1819 | if (ip->i_d.di_nlink != 0) { | 1817 | if (ip->i_d.di_nlink != 0) { |
1820 | /* | 1818 | /* |
@@ -1822,12 +1820,10 @@ xfs_inactive( | |||
1822 | * cache. Post-eof blocks must be freed, lest we end up with | 1820 | * cache. Post-eof blocks must be freed, lest we end up with |
1823 | * broken free space accounting. | 1821 | * broken free space accounting. |
1824 | */ | 1822 | */ |
1825 | if (xfs_can_free_eofblocks(ip, true)) { | 1823 | if (xfs_can_free_eofblocks(ip, true)) |
1826 | error = xfs_free_eofblocks(mp, ip, false); | 1824 | xfs_free_eofblocks(mp, ip, false); |
1827 | if (error) | 1825 | |
1828 | return VN_INACTIVE_CACHE; | 1826 | return; |
1829 | } | ||
1830 | goto out; | ||
1831 | } | 1827 | } |
1832 | 1828 | ||
1833 | if (S_ISREG(ip->i_d.di_mode) && | 1829 | if (S_ISREG(ip->i_d.di_mode) && |
@@ -1837,14 +1833,14 @@ xfs_inactive( | |||
1837 | 1833 | ||
1838 | error = xfs_qm_dqattach(ip, 0); | 1834 | error = xfs_qm_dqattach(ip, 0); |
1839 | if (error) | 1835 | if (error) |
1840 | return VN_INACTIVE_CACHE; | 1836 | return; |
1841 | 1837 | ||
1842 | if (S_ISLNK(ip->i_d.di_mode)) | 1838 | if (S_ISLNK(ip->i_d.di_mode)) |
1843 | error = xfs_inactive_symlink(ip); | 1839 | error = xfs_inactive_symlink(ip); |
1844 | else if (truncate) | 1840 | else if (truncate) |
1845 | error = xfs_inactive_truncate(ip); | 1841 | error = xfs_inactive_truncate(ip); |
1846 | if (error) | 1842 | if (error) |
1847 | goto out; | 1843 | return; |
1848 | 1844 | ||
1849 | /* | 1845 | /* |
1850 | * If there are attributes associated with the file then blow them away | 1846 | * If there are attributes associated with the file then blow them away |
@@ -1857,7 +1853,7 @@ xfs_inactive( | |||
1857 | 1853 | ||
1858 | error = xfs_attr_inactive(ip); | 1854 | error = xfs_attr_inactive(ip); |
1859 | if (error) | 1855 | if (error) |
1860 | goto out; | 1856 | return; |
1861 | } | 1857 | } |
1862 | 1858 | ||
1863 | if (ip->i_afp) | 1859 | if (ip->i_afp) |
@@ -1870,14 +1866,12 @@ xfs_inactive( | |||
1870 | */ | 1866 | */ |
1871 | error = xfs_inactive_ifree(ip); | 1867 | error = xfs_inactive_ifree(ip); |
1872 | if (error) | 1868 | if (error) |
1873 | goto out; | 1869 | return; |
1874 | 1870 | ||
1875 | /* | 1871 | /* |
1876 | * Release the dquots held by inode, if any. | 1872 | * Release the dquots held by inode, if any. |
1877 | */ | 1873 | */ |
1878 | xfs_qm_dqdetach(ip); | 1874 | xfs_qm_dqdetach(ip); |
1879 | out: | ||
1880 | return VN_INACTIVE_CACHE; | ||
1881 | } | 1875 | } |
1882 | 1876 | ||
1883 | /* | 1877 | /* |
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 4a91358c1470..cce62ce1a73a 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h | |||
@@ -316,7 +316,7 @@ static inline int xfs_isiflocked(struct xfs_inode *ip) | |||
316 | 316 | ||
317 | 317 | ||
318 | int xfs_release(struct xfs_inode *ip); | 318 | int xfs_release(struct xfs_inode *ip); |
319 | int xfs_inactive(struct xfs_inode *ip); | 319 | void xfs_inactive(struct xfs_inode *ip); |
320 | int xfs_lookup(struct xfs_inode *dp, struct xfs_name *name, | 320 | int xfs_lookup(struct xfs_inode *dp, struct xfs_name *name, |
321 | struct xfs_inode **ipp, struct xfs_name *ci_name); | 321 | struct xfs_inode **ipp, struct xfs_name *ci_name); |
322 | int xfs_create(struct xfs_inode *dp, struct xfs_name *name, | 322 | int xfs_create(struct xfs_inode *dp, struct xfs_name *name, |
diff --git a/fs/xfs/xfs_vnode.h b/fs/xfs/xfs_vnode.h index db14d0c08682..3e8e797c6d11 100644 --- a/fs/xfs/xfs_vnode.h +++ b/fs/xfs/xfs_vnode.h | |||
@@ -25,14 +25,6 @@ struct xfs_inode; | |||
25 | struct attrlist_cursor_kern; | 25 | struct attrlist_cursor_kern; |
26 | 26 | ||
27 | /* | 27 | /* |
28 | * Return values for xfs_inactive. A return value of | ||
29 | * VN_INACTIVE_NOCACHE implies that the file system behavior | ||
30 | * has disassociated its state and bhv_desc_t from the vnode. | ||
31 | */ | ||
32 | #define VN_INACTIVE_CACHE 0 | ||
33 | #define VN_INACTIVE_NOCACHE 1 | ||
34 | |||
35 | /* | ||
36 | * Flags for read/write calls - same values as IRIX | 28 | * Flags for read/write calls - same values as IRIX |
37 | */ | 29 | */ |
38 | #define IO_ISDIRECT 0x00004 /* bypass page cache */ | 30 | #define IO_ISDIRECT 0x00004 /* bypass page cache */ |