xfs: better xfs_trans_alloc interface
Merge xfs_trans_reserve and xfs_trans_alloc into a single function call that returns a transaction with all the required log and block reservations, and which allows passing transaction flags directly to avoid the cumbersome _xfs_trans_alloc interface. While we're at it we also get rid of the transaction type argument that has been superflous since we stopped supporting the non-CIL logging mode. The guts of it will be removed in another patch. [dchinner: fixed transaction leak in error path in xfs_setattr_nonsize] Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:

committed by
Dave Chinner

parent
f55532a0c0
commit
253f4911f2
@@ -90,7 +90,6 @@ void xfs_log_item_init(struct xfs_mount *mp, struct xfs_log_item *item,
|
||||
*/
|
||||
typedef struct xfs_trans {
|
||||
unsigned int t_magic; /* magic number */
|
||||
unsigned int t_type; /* transaction type */
|
||||
unsigned int t_log_res; /* amt of log space resvd */
|
||||
unsigned int t_log_count; /* count for perm log res */
|
||||
unsigned int t_blk_res; /* # of blocks resvd */
|
||||
@@ -148,10 +147,9 @@ typedef struct xfs_trans {
|
||||
/*
|
||||
* XFS transaction mechanism exported interfaces.
|
||||
*/
|
||||
xfs_trans_t *xfs_trans_alloc(struct xfs_mount *, uint);
|
||||
xfs_trans_t *_xfs_trans_alloc(struct xfs_mount *, uint, xfs_km_flags_t);
|
||||
int xfs_trans_reserve(struct xfs_trans *, struct xfs_trans_res *,
|
||||
uint, uint);
|
||||
int xfs_trans_alloc(struct xfs_mount *mp, struct xfs_trans_res *resp,
|
||||
uint blocks, uint rtextents, uint flags,
|
||||
struct xfs_trans **tpp);
|
||||
void xfs_trans_mod_sb(xfs_trans_t *, uint, int64_t);
|
||||
|
||||
struct xfs_buf *xfs_trans_get_buf_map(struct xfs_trans *tp,
|
||||
|
Reference in New Issue
Block a user