diff options
author | Christoph Hellwig <hch@lst.de> | 2015-06-03 23:47:56 -0400 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2015-06-03 23:47:56 -0400 |
commit | 4906e21545814e4129595118287a2f1415483c0b (patch) | |
tree | 1e07c3083a4d7c5f3c56d679f9b440c653a867b3 /fs/xfs/xfs_dquot.c | |
parent | eacb24e73424bdae4aa139ddd459f86ec46f0ad0 (diff) |
xfs: remove the flags argument to xfs_trans_cancel
xfs_trans_cancel takes two flags arguments: XFS_TRANS_RELEASE_LOG_RES and
XFS_TRANS_ABORT. Both of them are a direct product of the transaction
state, and can be deducted:
- any dirty transaction needs XFS_TRANS_ABORT to be properly canceled,
and XFS_TRANS_ABORT is a noop for a transaction that is not dirty.
- any transaction with a permanent log reservation needs
XFS_TRANS_RELEASE_LOG_RES to be properly canceled, and passing
XFS_TRANS_RELEASE_LOG_RES for a transaction without a permanent
log reservation is invalid.
So just remove the flags argument and do the right thing.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/xfs_dquot.c')
-rw-r--r-- | fs/xfs/xfs_dquot.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c index 02c01bbbc789..ab0ae1f8b0ea 100644 --- a/fs/xfs/xfs_dquot.c +++ b/fs/xfs/xfs_dquot.c | |||
@@ -568,8 +568,6 @@ xfs_qm_dqread( | |||
568 | struct xfs_buf *bp; | 568 | struct xfs_buf *bp; |
569 | struct xfs_trans *tp = NULL; | 569 | struct xfs_trans *tp = NULL; |
570 | int error; | 570 | int error; |
571 | int cancelflags = 0; | ||
572 | |||
573 | 571 | ||
574 | dqp = kmem_zone_zalloc(xfs_qm_dqzone, KM_SLEEP); | 572 | dqp = kmem_zone_zalloc(xfs_qm_dqzone, KM_SLEEP); |
575 | 573 | ||
@@ -617,7 +615,6 @@ xfs_qm_dqread( | |||
617 | XFS_QM_DQALLOC_SPACE_RES(mp), 0); | 615 | XFS_QM_DQALLOC_SPACE_RES(mp), 0); |
618 | if (error) | 616 | if (error) |
619 | goto error1; | 617 | goto error1; |
620 | cancelflags = XFS_TRANS_RELEASE_LOG_RES; | ||
621 | } | 618 | } |
622 | 619 | ||
623 | /* | 620 | /* |
@@ -632,7 +629,6 @@ xfs_qm_dqread( | |||
632 | * allocate (ENOENT). | 629 | * allocate (ENOENT). |
633 | */ | 630 | */ |
634 | trace_xfs_dqread_fail(dqp); | 631 | trace_xfs_dqread_fail(dqp); |
635 | cancelflags |= XFS_TRANS_ABORT; | ||
636 | goto error1; | 632 | goto error1; |
637 | } | 633 | } |
638 | 634 | ||
@@ -680,7 +676,7 @@ xfs_qm_dqread( | |||
680 | 676 | ||
681 | error1: | 677 | error1: |
682 | if (tp) | 678 | if (tp) |
683 | xfs_trans_cancel(tp, cancelflags); | 679 | xfs_trans_cancel(tp); |
684 | error0: | 680 | error0: |
685 | xfs_qm_dqdestroy(dqp); | 681 | xfs_qm_dqdestroy(dqp); |
686 | *O_dqpp = NULL; | 682 | *O_dqpp = NULL; |