diff options
author | Christoph Hellwig <hch@infradead.org> | 2011-02-13 13:26:42 +0000 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2011-02-22 20:32:28 -0600 |
commit | ec3ba85f4083d10e32fe58b46db02d78ef71f6b8 (patch) | |
tree | bf8e3b41e913c80f24673b87fb390ce6903d82ac /fs/xfs/xfs_trans.h | |
parent | 1050c71e2925ab0cb025e4c89e08b15529a1ee36 (diff) | |
download | linux-stable-ec3ba85f4083d10e32fe58b46db02d78ef71f6b8.tar.gz linux-stable-ec3ba85f4083d10e32fe58b46db02d78ef71f6b8.tar.bz2 linux-stable-ec3ba85f4083d10e32fe58b46db02d78ef71f6b8.zip |
xfs: more sensible inode refcounting for ialloc
Currently we return iodes from xfs_ialloc with just a single reference held.
But we need two references, as one is dropped during transaction commit and
the second needs to be transfered to the VFS. Change xfs_ialloc to use
xfs_iget plus xfs_trans_ijoin_ref to grab two references to the inode,
and remove the now superflous IHOLD calls from all callers. This also
greatly simplifies the error handling in xfs_create and also allow to remove
xfs_trans_iget as no other callers are left.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_trans.h')
-rw-r--r-- | fs/xfs/xfs_trans.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index c2042b736b81..06a9759b6352 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -469,8 +469,6 @@ void xfs_trans_inode_buf(xfs_trans_t *, struct xfs_buf *); void xfs_trans_stale_inode_buf(xfs_trans_t *, struct xfs_buf *); void xfs_trans_dquot_buf(xfs_trans_t *, struct xfs_buf *, uint); void xfs_trans_inode_alloc_buf(xfs_trans_t *, struct xfs_buf *); -int xfs_trans_iget(struct xfs_mount *, xfs_trans_t *, - xfs_ino_t , uint, uint, struct xfs_inode **); void xfs_trans_ichgtime(struct xfs_trans *, struct xfs_inode *, int); void xfs_trans_ijoin_ref(struct xfs_trans *, struct xfs_inode *, uint); void xfs_trans_ijoin(struct xfs_trans *, struct xfs_inode *); |