mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
Merge branch 'xfs-commit-cleanup' into for-next
Conflicts: fs/xfs/xfs_attr_inactive.c
This commit is contained in:
@@ -266,7 +266,7 @@ xfs_attr_set(
|
||||
tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
|
||||
error = xfs_trans_reserve(args.trans, &tres, args.total, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(args.trans, 0);
|
||||
xfs_trans_cancel(args.trans);
|
||||
return error;
|
||||
}
|
||||
xfs_ilock(dp, XFS_ILOCK_EXCL);
|
||||
@@ -276,7 +276,7 @@ xfs_attr_set(
|
||||
XFS_QMOPT_RES_REGBLKS);
|
||||
if (error) {
|
||||
xfs_iunlock(dp, XFS_ILOCK_EXCL);
|
||||
xfs_trans_cancel(args.trans, XFS_TRANS_RELEASE_LOG_RES);
|
||||
xfs_trans_cancel(args.trans);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -320,8 +320,7 @@ xfs_attr_set(
|
||||
xfs_trans_ichgtime(args.trans, dp,
|
||||
XFS_ICHGTIME_CHG);
|
||||
}
|
||||
err2 = xfs_trans_commit(args.trans,
|
||||
XFS_TRANS_RELEASE_LOG_RES);
|
||||
err2 = xfs_trans_commit(args.trans);
|
||||
xfs_iunlock(dp, XFS_ILOCK_EXCL);
|
||||
|
||||
return error ? error : err2;
|
||||
@@ -383,16 +382,14 @@ xfs_attr_set(
|
||||
* Commit the last in the sequence of transactions.
|
||||
*/
|
||||
xfs_trans_log_inode(args.trans, dp, XFS_ILOG_CORE);
|
||||
error = xfs_trans_commit(args.trans, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(args.trans);
|
||||
xfs_iunlock(dp, XFS_ILOCK_EXCL);
|
||||
|
||||
return error;
|
||||
|
||||
out:
|
||||
if (args.trans) {
|
||||
xfs_trans_cancel(args.trans,
|
||||
XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_ABORT);
|
||||
}
|
||||
if (args.trans)
|
||||
xfs_trans_cancel(args.trans);
|
||||
xfs_iunlock(dp, XFS_ILOCK_EXCL);
|
||||
return error;
|
||||
}
|
||||
@@ -462,7 +459,7 @@ xfs_attr_remove(
|
||||
error = xfs_trans_reserve(args.trans, &M_RES(mp)->tr_attrrm,
|
||||
XFS_ATTRRM_SPACE_RES(mp), 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(args.trans, 0);
|
||||
xfs_trans_cancel(args.trans);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -501,16 +498,14 @@ xfs_attr_remove(
|
||||
* Commit the last in the sequence of transactions.
|
||||
*/
|
||||
xfs_trans_log_inode(args.trans, dp, XFS_ILOG_CORE);
|
||||
error = xfs_trans_commit(args.trans, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(args.trans);
|
||||
xfs_iunlock(dp, XFS_ILOCK_EXCL);
|
||||
|
||||
return error;
|
||||
|
||||
out:
|
||||
if (args.trans) {
|
||||
xfs_trans_cancel(args.trans,
|
||||
XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_ABORT);
|
||||
}
|
||||
if (args.trans)
|
||||
xfs_trans_cancel(args.trans);
|
||||
xfs_iunlock(dp, XFS_ILOCK_EXCL);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -1112,7 +1112,6 @@ xfs_bmap_add_attrfork(
|
||||
int committed; /* xaction was committed */
|
||||
int logflags; /* logging flags */
|
||||
int error; /* error return value */
|
||||
int cancel_flags = 0;
|
||||
|
||||
ASSERT(XFS_IFORK_Q(ip) == 0);
|
||||
|
||||
@@ -1124,17 +1123,15 @@ xfs_bmap_add_attrfork(
|
||||
tp->t_flags |= XFS_TRANS_RESERVE;
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_addafork, blks, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
cancel_flags = XFS_TRANS_RELEASE_LOG_RES;
|
||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||
error = xfs_trans_reserve_quota_nblks(tp, ip, blks, 0, rsvd ?
|
||||
XFS_QMOPT_RES_REGBLKS | XFS_QMOPT_FORCE_RES :
|
||||
XFS_QMOPT_RES_REGBLKS);
|
||||
if (error)
|
||||
goto trans_cancel;
|
||||
cancel_flags |= XFS_TRANS_ABORT;
|
||||
if (XFS_IFORK_Q(ip))
|
||||
goto trans_cancel;
|
||||
if (ip->i_d.di_aformat != XFS_DINODE_FMT_EXTENTS) {
|
||||
@@ -1218,14 +1215,14 @@ xfs_bmap_add_attrfork(
|
||||
error = xfs_bmap_finish(&tp, &flist, &committed);
|
||||
if (error)
|
||||
goto bmap_cancel;
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
return error;
|
||||
|
||||
bmap_cancel:
|
||||
xfs_bmap_cancel(&flist);
|
||||
trans_cancel:
|
||||
xfs_trans_cancel(tp, cancel_flags);
|
||||
xfs_trans_cancel(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
return error;
|
||||
}
|
||||
@@ -5926,7 +5923,7 @@ xfs_bmap_split_extent(
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_write,
|
||||
XFS_DIOSTRAT_SPACE_RES(mp, 0), 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -5944,10 +5941,9 @@ xfs_bmap_split_extent(
|
||||
if (error)
|
||||
goto out;
|
||||
|
||||
return xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
|
||||
return xfs_trans_commit(tp);
|
||||
|
||||
out:
|
||||
xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -818,12 +818,12 @@ xfs_sync_sb(
|
||||
tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_CHANGE, KM_SLEEP);
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_sb, 0, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
xfs_log_sb(tp);
|
||||
if (wait)
|
||||
xfs_trans_set_sync(tp);
|
||||
return xfs_trans_commit(tp, 0);
|
||||
return xfs_trans_commit(tp);
|
||||
}
|
||||
|
||||
@@ -181,12 +181,6 @@ int xfs_log_calc_minimum_size(struct xfs_mount *);
|
||||
#define XFS_TRANS_RESERVE 0x20 /* OK to use reserved data blocks */
|
||||
#define XFS_TRANS_FREEZE_PROT 0x40 /* Transaction has elevated writer
|
||||
count in superblock */
|
||||
/*
|
||||
* Values for call flags parameter.
|
||||
*/
|
||||
#define XFS_TRANS_RELEASE_LOG_RES 0x4
|
||||
#define XFS_TRANS_ABORT 0x8
|
||||
|
||||
/*
|
||||
* Field values for xfs_trans_mod_sb.
|
||||
*/
|
||||
|
||||
@@ -109,7 +109,7 @@ xfs_setfilesize_trans_alloc(
|
||||
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_fsyncts, 0, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ xfs_setfilesize(
|
||||
isize = xfs_new_eof(ip, offset + size);
|
||||
if (!isize) {
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ xfs_setfilesize(
|
||||
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
|
||||
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
|
||||
|
||||
return xfs_trans_commit(tp, 0);
|
||||
return xfs_trans_commit(tp);
|
||||
}
|
||||
|
||||
STATIC int
|
||||
|
||||
@@ -394,7 +394,6 @@ xfs_attr_inactive(
|
||||
{
|
||||
struct xfs_trans *trans;
|
||||
struct xfs_mount *mp;
|
||||
int cancel_flags = 0;
|
||||
int lock_mode = XFS_ILOCK_SHARED;
|
||||
int error = 0;
|
||||
|
||||
@@ -423,7 +422,6 @@ xfs_attr_inactive(
|
||||
goto out_cancel;
|
||||
|
||||
lock_mode = XFS_ILOCK_EXCL;
|
||||
cancel_flags = XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT;
|
||||
xfs_ilock(dp, lock_mode);
|
||||
|
||||
if (!XFS_IFORK_Q(dp))
|
||||
@@ -449,12 +447,12 @@ xfs_attr_inactive(
|
||||
/* Reset the attribute fork - this also destroys the in-core fork */
|
||||
xfs_attr_fork_remove(dp, trans);
|
||||
|
||||
error = xfs_trans_commit(trans, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(trans);
|
||||
xfs_iunlock(dp, lock_mode);
|
||||
return error;
|
||||
|
||||
out_cancel:
|
||||
xfs_trans_cancel(trans, cancel_flags);
|
||||
xfs_trans_cancel(trans);
|
||||
out_destroy_fork:
|
||||
/* kill the in-core attr fork before we drop the inode lock */
|
||||
if (dp->i_afp)
|
||||
|
||||
@@ -75,28 +75,20 @@ xfs_bmap_finish(
|
||||
xfs_efi_log_item_t *efi; /* extent free intention */
|
||||
int error; /* error return value */
|
||||
xfs_bmap_free_item_t *free; /* free extent item */
|
||||
struct xfs_trans_res tres; /* new log reservation */
|
||||
xfs_mount_t *mp; /* filesystem mount structure */
|
||||
xfs_bmap_free_item_t *next; /* next item on free list */
|
||||
xfs_trans_t *ntp; /* new transaction pointer */
|
||||
|
||||
ASSERT((*tp)->t_flags & XFS_TRANS_PERM_LOG_RES);
|
||||
if (flist->xbf_count == 0) {
|
||||
*committed = 0;
|
||||
return 0;
|
||||
}
|
||||
ntp = *tp;
|
||||
efi = xfs_trans_get_efi(ntp, flist->xbf_count);
|
||||
efi = xfs_trans_get_efi(*tp, flist->xbf_count);
|
||||
for (free = flist->xbf_first; free; free = free->xbfi_next)
|
||||
xfs_trans_log_efi_extent(ntp, efi, free->xbfi_startblock,
|
||||
xfs_trans_log_efi_extent(*tp, efi, free->xbfi_startblock,
|
||||
free->xbfi_blockcount);
|
||||
|
||||
tres.tr_logres = ntp->t_log_res;
|
||||
tres.tr_logcount = ntp->t_log_count;
|
||||
tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
|
||||
ntp = xfs_trans_dup(*tp);
|
||||
error = xfs_trans_commit(*tp, 0);
|
||||
*tp = ntp;
|
||||
error = xfs_trans_roll(tp, NULL);
|
||||
*committed = 1;
|
||||
/*
|
||||
* We have a new transaction, so we should return committed=1,
|
||||
@@ -105,19 +97,10 @@ xfs_bmap_finish(
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
/*
|
||||
* transaction commit worked ok so we can drop the extra ticket
|
||||
* reference that we gained in xfs_trans_dup()
|
||||
*/
|
||||
xfs_log_ticket_put(ntp->t_ticket);
|
||||
|
||||
error = xfs_trans_reserve(ntp, &tres, 0, 0);
|
||||
if (error)
|
||||
return error;
|
||||
efd = xfs_trans_get_efd(ntp, efi, flist->xbf_count);
|
||||
efd = xfs_trans_get_efd(*tp, efi, flist->xbf_count);
|
||||
for (free = flist->xbf_first; free != NULL; free = next) {
|
||||
next = free->xbfi_next;
|
||||
if ((error = xfs_free_extent(ntp, free->xbfi_startblock,
|
||||
if ((error = xfs_free_extent(*tp, free->xbfi_startblock,
|
||||
free->xbfi_blockcount))) {
|
||||
/*
|
||||
* The bmap free list will be cleaned up at a
|
||||
@@ -127,7 +110,7 @@ xfs_bmap_finish(
|
||||
* happens, since this transaction may not be
|
||||
* dirty yet.
|
||||
*/
|
||||
mp = ntp->t_mountp;
|
||||
mp = (*tp)->t_mountp;
|
||||
if (!XFS_FORCED_SHUTDOWN(mp))
|
||||
xfs_force_shutdown(mp,
|
||||
(error == -EFSCORRUPTED) ?
|
||||
@@ -135,7 +118,7 @@ xfs_bmap_finish(
|
||||
SHUTDOWN_META_IO_ERROR);
|
||||
return error;
|
||||
}
|
||||
xfs_trans_log_efd_extent(ntp, efd, free->xbfi_startblock,
|
||||
xfs_trans_log_efd_extent(*tp, efd, free->xbfi_startblock,
|
||||
free->xbfi_blockcount);
|
||||
xfs_bmap_del_free(flist, NULL, free);
|
||||
}
|
||||
@@ -878,7 +861,7 @@ xfs_free_eofblocks(
|
||||
|
||||
if (need_iolock) {
|
||||
if (!xfs_ilock_nowait(ip, XFS_IOLOCK_EXCL)) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return -EAGAIN;
|
||||
}
|
||||
}
|
||||
@@ -886,7 +869,7 @@ xfs_free_eofblocks(
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_itruncate, 0, 0);
|
||||
if (error) {
|
||||
ASSERT(XFS_FORCED_SHUTDOWN(mp));
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
if (need_iolock)
|
||||
xfs_iunlock(ip, XFS_IOLOCK_EXCL);
|
||||
return error;
|
||||
@@ -908,12 +891,9 @@ xfs_free_eofblocks(
|
||||
* If we get an error at this point we simply don't
|
||||
* bother truncating the file.
|
||||
*/
|
||||
xfs_trans_cancel(tp,
|
||||
(XFS_TRANS_RELEASE_LOG_RES |
|
||||
XFS_TRANS_ABORT));
|
||||
xfs_trans_cancel(tp);
|
||||
} else {
|
||||
error = xfs_trans_commit(tp,
|
||||
XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
if (!error)
|
||||
xfs_inode_clear_eofblocks_tag(ip);
|
||||
}
|
||||
@@ -1026,7 +1006,7 @@ xfs_alloc_file_space(
|
||||
* Free the transaction structure.
|
||||
*/
|
||||
ASSERT(error == -ENOSPC || XFS_FORCED_SHUTDOWN(mp));
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
break;
|
||||
}
|
||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||
@@ -1053,7 +1033,7 @@ xfs_alloc_file_space(
|
||||
goto error0;
|
||||
}
|
||||
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
if (error) {
|
||||
break;
|
||||
@@ -1077,7 +1057,7 @@ error0: /* Cancel bmap, unlock inode, unreserve quota blocks, cancel trans */
|
||||
xfs_trans_unreserve_quota_nblks(tp, ip, (long)qblocks, 0, quota_flag);
|
||||
|
||||
error1: /* Just cancel transaction */
|
||||
xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
return error;
|
||||
}
|
||||
@@ -1304,7 +1284,7 @@ xfs_free_file_space(
|
||||
* Free the transaction structure.
|
||||
*/
|
||||
ASSERT(error == -ENOSPC || XFS_FORCED_SHUTDOWN(mp));
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
break;
|
||||
}
|
||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||
@@ -1335,7 +1315,7 @@ xfs_free_file_space(
|
||||
goto error0;
|
||||
}
|
||||
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
}
|
||||
|
||||
@@ -1345,7 +1325,7 @@ xfs_free_file_space(
|
||||
error0:
|
||||
xfs_bmap_cancel(&free_list);
|
||||
error1:
|
||||
xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
goto out;
|
||||
}
|
||||
@@ -1477,7 +1457,7 @@ xfs_shift_file_space(
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_write,
|
||||
XFS_DIOSTRAT_SPACE_RES(mp, 0), 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1507,13 +1487,13 @@ xfs_shift_file_space(
|
||||
if (error)
|
||||
goto out;
|
||||
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
}
|
||||
|
||||
return error;
|
||||
|
||||
out:
|
||||
xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -1733,7 +1713,7 @@ xfs_swap_extents(
|
||||
tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT);
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ichange, 0, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
@@ -1916,7 +1896,7 @@ xfs_swap_extents(
|
||||
if (mp->m_flags & XFS_MOUNT_WSYNC)
|
||||
xfs_trans_set_sync(tp);
|
||||
|
||||
error = xfs_trans_commit(tp, 0);
|
||||
error = xfs_trans_commit(tp);
|
||||
|
||||
trace_xfs_swap_extent_after(ip, 0);
|
||||
trace_xfs_swap_extent_after(tip, 1);
|
||||
@@ -1930,6 +1910,6 @@ out_unlock:
|
||||
goto out;
|
||||
|
||||
out_trans_cancel:
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -568,8 +568,6 @@ xfs_qm_dqread(
|
||||
struct xfs_buf *bp;
|
||||
struct xfs_trans *tp = NULL;
|
||||
int error;
|
||||
int cancelflags = 0;
|
||||
|
||||
|
||||
dqp = kmem_zone_zalloc(xfs_qm_dqzone, KM_SLEEP);
|
||||
|
||||
@@ -617,7 +615,6 @@ xfs_qm_dqread(
|
||||
XFS_QM_DQALLOC_SPACE_RES(mp), 0);
|
||||
if (error)
|
||||
goto error1;
|
||||
cancelflags = XFS_TRANS_RELEASE_LOG_RES;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -632,7 +629,6 @@ xfs_qm_dqread(
|
||||
* allocate (ENOENT).
|
||||
*/
|
||||
trace_xfs_dqread_fail(dqp);
|
||||
cancelflags |= XFS_TRANS_ABORT;
|
||||
goto error1;
|
||||
}
|
||||
|
||||
@@ -670,7 +666,7 @@ xfs_qm_dqread(
|
||||
xfs_trans_brelse(tp, bp);
|
||||
|
||||
if (tp) {
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
if (error)
|
||||
goto error0;
|
||||
}
|
||||
@@ -680,7 +676,7 @@ xfs_qm_dqread(
|
||||
|
||||
error1:
|
||||
if (tp)
|
||||
xfs_trans_cancel(tp, cancelflags);
|
||||
xfs_trans_cancel(tp);
|
||||
error0:
|
||||
xfs_qm_dqdestroy(dqp);
|
||||
*O_dqpp = NULL;
|
||||
|
||||
@@ -147,7 +147,7 @@ xfs_update_prealloc_flags(
|
||||
tp = xfs_trans_alloc(ip->i_mount, XFS_TRANS_WRITEID);
|
||||
error = xfs_trans_reserve(tp, &M_RES(ip->i_mount)->tr_writeid, 0, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ xfs_update_prealloc_flags(
|
||||
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
|
||||
if (flags & XFS_PREALLOC_SYNC)
|
||||
xfs_trans_set_sync(tp);
|
||||
return xfs_trans_commit(tp, 0);
|
||||
return xfs_trans_commit(tp);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -203,7 +203,7 @@ xfs_growfs_data_private(
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_growdata,
|
||||
XFS_GROWFS_SPACE_RES(mp), 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -491,7 +491,7 @@ xfs_growfs_data_private(
|
||||
if (dpct)
|
||||
xfs_trans_mod_sb(tp, XFS_TRANS_SB_IMAXPCT, dpct);
|
||||
xfs_trans_set_sync(tp);
|
||||
error = xfs_trans_commit(tp, 0);
|
||||
error = xfs_trans_commit(tp);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
@@ -559,7 +559,7 @@ xfs_growfs_data_private(
|
||||
return saved_error ? saved_error : error;
|
||||
|
||||
error0:
|
||||
xfs_trans_cancel(tp, XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -336,7 +336,7 @@ xfs_set_dmattrs(
|
||||
tp = xfs_trans_alloc(mp, XFS_TRANS_SET_DMATTRS);
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ichange, 0, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||
@@ -346,7 +346,7 @@ xfs_set_dmattrs(
|
||||
ip->i_d.di_dmstate = state;
|
||||
|
||||
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
|
||||
error = xfs_trans_commit(tp, 0);
|
||||
error = xfs_trans_commit(tp);
|
||||
|
||||
return error;
|
||||
}
|
||||
@@ -1076,7 +1076,7 @@ xfs_ioctl_setattr_get_trans(
|
||||
return tp;
|
||||
|
||||
out_cancel:
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return ERR_PTR(error);
|
||||
}
|
||||
|
||||
@@ -1253,7 +1253,7 @@ xfs_ioctl_setattr(
|
||||
else
|
||||
ip->i_d.di_extsize = 0;
|
||||
|
||||
code = xfs_trans_commit(tp, 0);
|
||||
code = xfs_trans_commit(tp);
|
||||
|
||||
/*
|
||||
* Release any dquot(s) the inode had kept before chown.
|
||||
@@ -1265,7 +1265,7 @@ xfs_ioctl_setattr(
|
||||
return code;
|
||||
|
||||
error_trans_cancel:
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
error_free_dquots:
|
||||
xfs_qm_dqrele(udqp);
|
||||
xfs_qm_dqrele(pdqp);
|
||||
@@ -1338,11 +1338,11 @@ xfs_ioc_setxflags(
|
||||
|
||||
error = xfs_ioctl_setattr_xflags(tp, ip, &fa);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
goto out_drop_write;
|
||||
}
|
||||
|
||||
error = xfs_trans_commit(tp, 0);
|
||||
error = xfs_trans_commit(tp);
|
||||
out_drop_write:
|
||||
mnt_drop_write_file(filp);
|
||||
return error;
|
||||
|
||||
@@ -183,7 +183,7 @@ xfs_iomap_write_direct(
|
||||
* Check for running out of space, note: need lock to return
|
||||
*/
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -213,7 +213,7 @@ xfs_iomap_write_direct(
|
||||
error = xfs_bmap_finish(&tp, &free_list, &committed);
|
||||
if (error)
|
||||
goto out_bmap_cancel;
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
if (error)
|
||||
goto out_unlock;
|
||||
|
||||
@@ -236,7 +236,7 @@ out_bmap_cancel:
|
||||
xfs_bmap_cancel(&free_list);
|
||||
xfs_trans_unreserve_quota_nblks(tp, ip, (long)qblocks, 0, quota_flag);
|
||||
out_trans_cancel:
|
||||
xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
@@ -690,7 +690,7 @@ xfs_iomap_write_allocate(
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_write,
|
||||
nres, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||
@@ -760,7 +760,7 @@ xfs_iomap_write_allocate(
|
||||
if (error)
|
||||
goto trans_cancel;
|
||||
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
if (error)
|
||||
goto error0;
|
||||
|
||||
@@ -791,7 +791,7 @@ xfs_iomap_write_allocate(
|
||||
|
||||
trans_cancel:
|
||||
xfs_bmap_cancel(&free_list);
|
||||
xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
error0:
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
return error;
|
||||
@@ -853,7 +853,7 @@ xfs_iomap_write_unwritten(
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_write,
|
||||
resblks, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -890,7 +890,7 @@ xfs_iomap_write_unwritten(
|
||||
if (error)
|
||||
goto error_on_bmapi_transaction;
|
||||
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
if (error)
|
||||
return error;
|
||||
@@ -914,7 +914,7 @@ xfs_iomap_write_unwritten(
|
||||
|
||||
error_on_bmapi_transaction:
|
||||
xfs_bmap_cancel(&free_list);
|
||||
xfs_trans_cancel(tp, (XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT));
|
||||
xfs_trans_cancel(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -702,7 +702,7 @@ xfs_setattr_nonsize(
|
||||
|
||||
if (mp->m_flags & XFS_MOUNT_WSYNC)
|
||||
xfs_trans_set_sync(tp);
|
||||
error = xfs_trans_commit(tp, 0);
|
||||
error = xfs_trans_commit(tp);
|
||||
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
|
||||
@@ -733,7 +733,7 @@ xfs_setattr_nonsize(
|
||||
return 0;
|
||||
|
||||
out_trans_cancel:
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
out_dqrele:
|
||||
xfs_qm_dqrele(udqp);
|
||||
@@ -755,7 +755,6 @@ xfs_setattr_size(
|
||||
struct xfs_trans *tp;
|
||||
int error;
|
||||
uint lock_flags = 0;
|
||||
uint commit_flags = 0;
|
||||
bool did_zeroing = false;
|
||||
|
||||
trace_xfs_setattr(ip);
|
||||
@@ -865,7 +864,6 @@ xfs_setattr_size(
|
||||
if (error)
|
||||
goto out_trans_cancel;
|
||||
|
||||
commit_flags = XFS_TRANS_RELEASE_LOG_RES;
|
||||
lock_flags |= XFS_ILOCK_EXCL;
|
||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||
xfs_trans_ijoin(tp, ip, 0);
|
||||
@@ -905,7 +903,7 @@ xfs_setattr_size(
|
||||
if (newsize <= oldsize) {
|
||||
error = xfs_itruncate_extents(&tp, ip, XFS_DATA_FORK, newsize);
|
||||
if (error)
|
||||
goto out_trans_abort;
|
||||
goto out_trans_cancel;
|
||||
|
||||
/*
|
||||
* Truncated "down", so we're removing references to old data
|
||||
@@ -932,16 +930,14 @@ xfs_setattr_size(
|
||||
if (mp->m_flags & XFS_MOUNT_WSYNC)
|
||||
xfs_trans_set_sync(tp);
|
||||
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
out_unlock:
|
||||
if (lock_flags)
|
||||
xfs_iunlock(ip, lock_flags);
|
||||
return error;
|
||||
|
||||
out_trans_abort:
|
||||
commit_flags |= XFS_TRANS_ABORT;
|
||||
out_trans_cancel:
|
||||
xfs_trans_cancel(tp, commit_flags);
|
||||
xfs_trans_cancel(tp);
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
@@ -988,7 +984,7 @@ xfs_vn_update_time(
|
||||
tp = xfs_trans_alloc(mp, XFS_TRANS_FSYNC_TS);
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_fsyncts, 0, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -1010,7 +1006,7 @@ xfs_vn_update_time(
|
||||
}
|
||||
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
|
||||
xfs_trans_log_inode(tp, ip, XFS_ILOG_TIMESTAMP);
|
||||
return xfs_trans_commit(tp, 0);
|
||||
return xfs_trans_commit(tp);
|
||||
}
|
||||
|
||||
#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR)
|
||||
|
||||
@@ -513,7 +513,7 @@ xfs_log_done(
|
||||
struct xfs_mount *mp,
|
||||
struct xlog_ticket *ticket,
|
||||
struct xlog_in_core **iclog,
|
||||
uint flags)
|
||||
bool regrant)
|
||||
{
|
||||
struct xlog *log = mp->m_log;
|
||||
xfs_lsn_t lsn = 0;
|
||||
@@ -526,14 +526,11 @@ xfs_log_done(
|
||||
(((ticket->t_flags & XLOG_TIC_INITED) == 0) &&
|
||||
(xlog_commit_record(log, ticket, iclog, &lsn)))) {
|
||||
lsn = (xfs_lsn_t) -1;
|
||||
if (ticket->t_flags & XLOG_TIC_PERM_RESERV) {
|
||||
flags |= XFS_LOG_REL_PERM_RESERV;
|
||||
}
|
||||
regrant = false;
|
||||
}
|
||||
|
||||
|
||||
if ((ticket->t_flags & XLOG_TIC_PERM_RESERV) == 0 ||
|
||||
(flags & XFS_LOG_REL_PERM_RESERV)) {
|
||||
if (!regrant) {
|
||||
trace_xfs_log_done_nonperm(log, ticket);
|
||||
|
||||
/*
|
||||
@@ -541,7 +538,6 @@ xfs_log_done(
|
||||
* request has been made to release a permanent reservation.
|
||||
*/
|
||||
xlog_ungrant_log_space(log, ticket);
|
||||
xfs_log_ticket_put(ticket);
|
||||
} else {
|
||||
trace_xfs_log_done_perm(log, ticket);
|
||||
|
||||
@@ -553,6 +549,7 @@ xfs_log_done(
|
||||
ticket->t_flags |= XLOG_TIC_INITED;
|
||||
}
|
||||
|
||||
xfs_log_ticket_put(ticket);
|
||||
return lsn;
|
||||
}
|
||||
|
||||
|
||||
@@ -110,15 +110,6 @@ static inline xfs_lsn_t _lsn_cmp(xfs_lsn_t lsn1, xfs_lsn_t lsn2)
|
||||
|
||||
#define XFS_LSN_CMP(x,y) _lsn_cmp(x,y)
|
||||
|
||||
/*
|
||||
* Macros, structures, prototypes for interface to the log manager.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Flags to xfs_log_done()
|
||||
*/
|
||||
#define XFS_LOG_REL_PERM_RESERV 0x1
|
||||
|
||||
/*
|
||||
* Flags to xfs_log_force()
|
||||
*
|
||||
@@ -138,7 +129,7 @@ struct xfs_log_callback;
|
||||
xfs_lsn_t xfs_log_done(struct xfs_mount *mp,
|
||||
struct xlog_ticket *ticket,
|
||||
struct xlog_in_core **iclog,
|
||||
uint flags);
|
||||
bool regrant);
|
||||
int _xfs_log_force(struct xfs_mount *mp,
|
||||
uint flags,
|
||||
int *log_forced);
|
||||
@@ -183,7 +174,7 @@ struct xlog_ticket *xfs_log_ticket_get(struct xlog_ticket *ticket);
|
||||
void xfs_log_ticket_put(struct xlog_ticket *ticket);
|
||||
|
||||
void xfs_log_commit_cil(struct xfs_mount *mp, struct xfs_trans *tp,
|
||||
xfs_lsn_t *commit_lsn, int flags);
|
||||
xfs_lsn_t *commit_lsn, bool regrant);
|
||||
bool xfs_log_item_in_current_chkpt(struct xfs_log_item *lip);
|
||||
|
||||
void xfs_log_work_queue(struct xfs_mount *mp);
|
||||
|
||||
@@ -624,7 +624,7 @@ restart:
|
||||
spin_unlock(&cil->xc_push_lock);
|
||||
|
||||
/* xfs_log_done always frees the ticket on error. */
|
||||
commit_lsn = xfs_log_done(log->l_mp, tic, &commit_iclog, 0);
|
||||
commit_lsn = xfs_log_done(log->l_mp, tic, &commit_iclog, false);
|
||||
if (commit_lsn == -1)
|
||||
goto out_abort;
|
||||
|
||||
@@ -773,14 +773,10 @@ xfs_log_commit_cil(
|
||||
struct xfs_mount *mp,
|
||||
struct xfs_trans *tp,
|
||||
xfs_lsn_t *commit_lsn,
|
||||
int flags)
|
||||
bool regrant)
|
||||
{
|
||||
struct xlog *log = mp->m_log;
|
||||
struct xfs_cil *cil = log->l_cilp;
|
||||
int log_flags = 0;
|
||||
|
||||
if (flags & XFS_TRANS_RELEASE_LOG_RES)
|
||||
log_flags = XFS_LOG_REL_PERM_RESERV;
|
||||
|
||||
/* lock out background commit */
|
||||
down_read(&cil->xc_ctx_lock);
|
||||
@@ -795,7 +791,7 @@ xfs_log_commit_cil(
|
||||
if (commit_lsn)
|
||||
*commit_lsn = tp->t_commit_lsn;
|
||||
|
||||
xfs_log_done(mp, tp->t_ticket, NULL, log_flags);
|
||||
xfs_log_done(mp, tp->t_ticket, NULL, regrant);
|
||||
xfs_trans_unreserve_and_mod_sb(tp);
|
||||
|
||||
/*
|
||||
@@ -809,7 +805,7 @@ xfs_log_commit_cil(
|
||||
* the log items. This affects (at least) processing of stale buffers,
|
||||
* inodes and EFIs.
|
||||
*/
|
||||
xfs_trans_free_items(tp, tp->t_commit_lsn, 0);
|
||||
xfs_trans_free_items(tp, tp->t_commit_lsn, false);
|
||||
|
||||
xlog_cil_push_background(log);
|
||||
|
||||
|
||||
@@ -3761,11 +3761,11 @@ xlog_recover_process_efi(
|
||||
}
|
||||
|
||||
set_bit(XFS_EFI_RECOVERED, &efip->efi_flags);
|
||||
error = xfs_trans_commit(tp, 0);
|
||||
error = xfs_trans_commit(tp);
|
||||
return error;
|
||||
|
||||
abort_error:
|
||||
xfs_trans_cancel(tp, XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -3867,13 +3867,13 @@ xlog_recover_clear_agi_bucket(
|
||||
xfs_trans_log_buf(tp, agibp, offset,
|
||||
(offset + sizeof(xfs_agino_t) - 1));
|
||||
|
||||
error = xfs_trans_commit(tp, 0);
|
||||
error = xfs_trans_commit(tp);
|
||||
if (error)
|
||||
goto out_error;
|
||||
return;
|
||||
|
||||
out_abort:
|
||||
xfs_trans_cancel(tp, XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
out_error:
|
||||
xfs_warn(mp, "%s: failed to clear agi %d. Continuing.", __func__, agno);
|
||||
return;
|
||||
|
||||
@@ -306,7 +306,7 @@ xfs_fs_commit_blocks(
|
||||
tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE);
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ichange, 0, 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
goto out_drop_iolock;
|
||||
}
|
||||
|
||||
@@ -321,7 +321,7 @@ xfs_fs_commit_blocks(
|
||||
}
|
||||
|
||||
xfs_trans_set_sync(tp);
|
||||
error = xfs_trans_commit(tp, 0);
|
||||
error = xfs_trans_commit(tp);
|
||||
|
||||
out_drop_iolock:
|
||||
xfs_iunlock(ip, XFS_IOLOCK_EXCL);
|
||||
|
||||
@@ -756,7 +756,7 @@ xfs_qm_qino_alloc(
|
||||
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_create,
|
||||
XFS_QM_QINOCREATE_SPACE_RES(mp), 0);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, 0);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -764,8 +764,7 @@ xfs_qm_qino_alloc(
|
||||
error = xfs_dir_ialloc(&tp, NULL, S_IFREG, 1, 0, 0, 1, ip,
|
||||
&committed);
|
||||
if (error) {
|
||||
xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES |
|
||||
XFS_TRANS_ABORT);
|
||||
xfs_trans_cancel(tp);
|
||||
return error;
|
||||
}
|
||||
}
|
||||
@@ -796,7 +795,7 @@ xfs_qm_qino_alloc(
|
||||
spin_unlock(&mp->m_sb_lock);
|
||||
xfs_log_sb(tp);
|
||||
|
||||
error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
|
||||
error = xfs_trans_commit(tp);
|
||||
if (error) {
|
||||
ASSERT(XFS_FORCED_SHUTDOWN(mp));
|
||||
xfs_alert(mp, "%s failed (error %d)!", __func__, error);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user