diff options
author | Dave Chinner <dchinner@redhat.com> | 2010-03-07 19:26:03 -0500 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-05-19 10:58:08 -0400 |
commit | 8e123850863366b738d6dfb9a84045018ff038fc (patch) | |
tree | ffa0185553c55d235b920e5ff384310be33034c6 | |
parent | 4aaf15d1aa9673dd2cc45c48957c946cb4aa2694 (diff) |
xfs: remove stale parameter from ->iop_unpin method
The staleness of a object being unpinned can be directly derived
from the object itself - there is no need to extract it from the
object then pass it as a parameter into IOP_UNPIN().
This means we can kill the XFS_LID_BUF_STALE flag - it is set,
checked and cleared in the same places XFS_BLI_STALE flag in the
xfs_buf_log_item so it is now redundant and hence safe to remove.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
-rw-r--r-- | fs/xfs/quota/xfs_dquot_item.c | 16 | ||||
-rw-r--r-- | fs/xfs/xfs_buf_item.c | 50 | ||||
-rw-r--r-- | fs/xfs/xfs_extfree_item.c | 8 | ||||
-rw-r--r-- | fs/xfs/xfs_inode_item.c | 7 | ||||
-rw-r--r-- | fs/xfs/xfs_trans.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_trans.h | 5 | ||||
-rw-r--r-- | fs/xfs/xfs_trans_buf.c | 3 |
7 files changed, 39 insertions, 52 deletions
diff --git a/fs/xfs/quota/xfs_dquot_item.c b/fs/xfs/quota/xfs_dquot_item.c index 639d96554a9e..165bbdf44bea 100644 --- a/fs/xfs/quota/xfs_dquot_item.c +++ b/fs/xfs/quota/xfs_dquot_item.c | |||
@@ -107,8 +107,7 @@ xfs_qm_dquot_logitem_pin( | |||
107 | /* ARGSUSED */ | 107 | /* ARGSUSED */ |
108 | STATIC void | 108 | STATIC void |
109 | xfs_qm_dquot_logitem_unpin( | 109 | xfs_qm_dquot_logitem_unpin( |
110 | xfs_dq_logitem_t *logitem, | 110 | xfs_dq_logitem_t *logitem) |
111 | int stale) | ||
112 | { | 111 | { |
113 | xfs_dquot_t *dqp = logitem->qli_dquot; | 112 | xfs_dquot_t *dqp = logitem->qli_dquot; |
114 | 113 | ||
@@ -123,7 +122,7 @@ xfs_qm_dquot_logitem_unpin_remove( | |||
123 | xfs_dq_logitem_t *logitem, | 122 | xfs_dq_logitem_t *logitem, |
124 | xfs_trans_t *tp) | 123 | xfs_trans_t *tp) |
125 | { | 124 | { |
126 | xfs_qm_dquot_logitem_unpin(logitem, 0); | 125 | xfs_qm_dquot_logitem_unpin(logitem); |
127 | } | 126 | } |
128 | 127 | ||
129 | /* | 128 | /* |
@@ -329,8 +328,7 @@ static struct xfs_item_ops xfs_dquot_item_ops = { | |||
329 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) | 328 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) |
330 | xfs_qm_dquot_logitem_format, | 329 | xfs_qm_dquot_logitem_format, |
331 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_qm_dquot_logitem_pin, | 330 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_qm_dquot_logitem_pin, |
332 | .iop_unpin = (void(*)(xfs_log_item_t*, int)) | 331 | .iop_unpin = (void(*)(xfs_log_item_t*))xfs_qm_dquot_logitem_unpin, |
333 | xfs_qm_dquot_logitem_unpin, | ||
334 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t*)) | 332 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t*)) |
335 | xfs_qm_dquot_logitem_unpin_remove, | 333 | xfs_qm_dquot_logitem_unpin_remove, |
336 | .iop_trylock = (uint(*)(xfs_log_item_t*)) | 334 | .iop_trylock = (uint(*)(xfs_log_item_t*)) |
@@ -425,7 +423,7 @@ xfs_qm_qoff_logitem_pin(xfs_qoff_logitem_t *qf) | |||
425 | */ | 423 | */ |
426 | /*ARGSUSED*/ | 424 | /*ARGSUSED*/ |
427 | STATIC void | 425 | STATIC void |
428 | xfs_qm_qoff_logitem_unpin(xfs_qoff_logitem_t *qf, int stale) | 426 | xfs_qm_qoff_logitem_unpin(xfs_qoff_logitem_t *qf) |
429 | { | 427 | { |
430 | return; | 428 | return; |
431 | } | 429 | } |
@@ -536,8 +534,7 @@ static struct xfs_item_ops xfs_qm_qoffend_logitem_ops = { | |||
536 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) | 534 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) |
537 | xfs_qm_qoff_logitem_format, | 535 | xfs_qm_qoff_logitem_format, |
538 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_pin, | 536 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_pin, |
539 | .iop_unpin = (void(*)(xfs_log_item_t* ,int)) | 537 | .iop_unpin = (void(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_unpin, |
540 | xfs_qm_qoff_logitem_unpin, | ||
541 | .iop_unpin_remove = (void(*)(xfs_log_item_t*,xfs_trans_t*)) | 538 | .iop_unpin_remove = (void(*)(xfs_log_item_t*,xfs_trans_t*)) |
542 | xfs_qm_qoff_logitem_unpin_remove, | 539 | xfs_qm_qoff_logitem_unpin_remove, |
543 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_trylock, | 540 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_trylock, |
@@ -558,8 +555,7 @@ static struct xfs_item_ops xfs_qm_qoff_logitem_ops = { | |||
558 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) | 555 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) |
559 | xfs_qm_qoff_logitem_format, | 556 | xfs_qm_qoff_logitem_format, |
560 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_pin, | 557 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_pin, |
561 | .iop_unpin = (void(*)(xfs_log_item_t*, int)) | 558 | .iop_unpin = (void(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_unpin, |
562 | xfs_qm_qoff_logitem_unpin, | ||
563 | .iop_unpin_remove = (void(*)(xfs_log_item_t*,xfs_trans_t*)) | 559 | .iop_unpin_remove = (void(*)(xfs_log_item_t*,xfs_trans_t*)) |
564 | xfs_qm_qoff_logitem_unpin_remove, | 560 | xfs_qm_qoff_logitem_unpin_remove, |
565 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_trylock, | 561 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_trylock, |
diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index aace237b4f46..240340a4727b 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c | |||
@@ -372,12 +372,12 @@ xfs_buf_item_pin( | |||
372 | */ | 372 | */ |
373 | STATIC void | 373 | STATIC void |
374 | xfs_buf_item_unpin( | 374 | xfs_buf_item_unpin( |
375 | xfs_buf_log_item_t *bip, | 375 | xfs_buf_log_item_t *bip) |
376 | int stale) | ||
377 | { | 376 | { |
378 | struct xfs_ail *ailp; | 377 | struct xfs_ail *ailp; |
379 | xfs_buf_t *bp; | 378 | xfs_buf_t *bp; |
380 | int freed; | 379 | int freed; |
380 | int stale = bip->bli_flags & XFS_BLI_STALE; | ||
381 | 381 | ||
382 | bp = bip->bli_buf; | 382 | bp = bip->bli_buf; |
383 | ASSERT(bp != NULL); | 383 | ASSERT(bp != NULL); |
@@ -428,40 +428,34 @@ xfs_buf_item_unpin_remove( | |||
428 | xfs_buf_log_item_t *bip, | 428 | xfs_buf_log_item_t *bip, |
429 | xfs_trans_t *tp) | 429 | xfs_trans_t *tp) |
430 | { | 430 | { |
431 | xfs_buf_t *bp; | 431 | /* will xfs_buf_item_unpin() call xfs_buf_item_relse()? */ |
432 | xfs_log_item_desc_t *lidp; | ||
433 | int stale = 0; | ||
434 | |||
435 | bp = bip->bli_buf; | ||
436 | /* | ||
437 | * will xfs_buf_item_unpin() call xfs_buf_item_relse()? | ||
438 | */ | ||
439 | if ((atomic_read(&bip->bli_refcount) == 1) && | 432 | if ((atomic_read(&bip->bli_refcount) == 1) && |
440 | (bip->bli_flags & XFS_BLI_STALE)) { | 433 | (bip->bli_flags & XFS_BLI_STALE)) { |
434 | /* | ||
435 | * yes -- We can safely do some work here and then call | ||
436 | * buf_item_unpin to do the rest because we are | ||
437 | * are holding the buffer locked so no one else will be | ||
438 | * able to bump up the refcount. We have to remove the | ||
439 | * log item from the transaction as we are about to release | ||
440 | * our reference to the buffer. If we don't, the unlock that | ||
441 | * occurs later in the xfs_trans_uncommit() will try to | ||
442 | * reference the buffer which we no longer have a hold on. | ||
443 | */ | ||
444 | struct xfs_log_item_desc *lidp; | ||
445 | |||
441 | ASSERT(XFS_BUF_VALUSEMA(bip->bli_buf) <= 0); | 446 | ASSERT(XFS_BUF_VALUSEMA(bip->bli_buf) <= 0); |
442 | trace_xfs_buf_item_unpin_stale(bip); | 447 | trace_xfs_buf_item_unpin_stale(bip); |
443 | 448 | ||
444 | /* | 449 | lidp = xfs_trans_find_item(tp, (xfs_log_item_t *)bip); |
445 | * yes -- clear the xaction descriptor in-use flag | ||
446 | * and free the chunk if required. We can safely | ||
447 | * do some work here and then call buf_item_unpin | ||
448 | * to do the rest because if the if is true, then | ||
449 | * we are holding the buffer locked so no one else | ||
450 | * will be able to bump up the refcount. | ||
451 | */ | ||
452 | lidp = xfs_trans_find_item(tp, (xfs_log_item_t *) bip); | ||
453 | stale = lidp->lid_flags & XFS_LID_BUF_STALE; | ||
454 | xfs_trans_free_item(tp, lidp); | 450 | xfs_trans_free_item(tp, lidp); |
451 | |||
455 | /* | 452 | /* |
456 | * Since the transaction no longer refers to the buffer, | 453 | * Since the transaction no longer refers to the buffer, the |
457 | * the buffer should no longer refer to the transaction. | 454 | * buffer should no longer refer to the transaction. |
458 | */ | 455 | */ |
459 | XFS_BUF_SET_FSPRIVATE2(bp, NULL); | 456 | XFS_BUF_SET_FSPRIVATE2(bip->bli_buf, NULL); |
460 | } | 457 | } |
461 | 458 | xfs_buf_item_unpin(bip); | |
462 | xfs_buf_item_unpin(bip, stale); | ||
463 | |||
464 | return; | ||
465 | } | 459 | } |
466 | 460 | ||
467 | /* | 461 | /* |
@@ -675,7 +669,7 @@ static struct xfs_item_ops xfs_buf_item_ops = { | |||
675 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) | 669 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) |
676 | xfs_buf_item_format, | 670 | xfs_buf_item_format, |
677 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_buf_item_pin, | 671 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_buf_item_pin, |
678 | .iop_unpin = (void(*)(xfs_log_item_t*, int))xfs_buf_item_unpin, | 672 | .iop_unpin = (void(*)(xfs_log_item_t*))xfs_buf_item_unpin, |
679 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t *)) | 673 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t *)) |
680 | xfs_buf_item_unpin_remove, | 674 | xfs_buf_item_unpin_remove, |
681 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_buf_item_trylock, | 675 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_buf_item_trylock, |
diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index e461e93b0350..409fe81585fd 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c | |||
@@ -106,7 +106,7 @@ xfs_efi_item_pin(xfs_efi_log_item_t *efip) | |||
106 | */ | 106 | */ |
107 | /*ARGSUSED*/ | 107 | /*ARGSUSED*/ |
108 | STATIC void | 108 | STATIC void |
109 | xfs_efi_item_unpin(xfs_efi_log_item_t *efip, int stale) | 109 | xfs_efi_item_unpin(xfs_efi_log_item_t *efip) |
110 | { | 110 | { |
111 | struct xfs_ail *ailp = efip->efi_item.li_ailp; | 111 | struct xfs_ail *ailp = efip->efi_item.li_ailp; |
112 | 112 | ||
@@ -224,7 +224,7 @@ static struct xfs_item_ops xfs_efi_item_ops = { | |||
224 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) | 224 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) |
225 | xfs_efi_item_format, | 225 | xfs_efi_item_format, |
226 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_efi_item_pin, | 226 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_efi_item_pin, |
227 | .iop_unpin = (void(*)(xfs_log_item_t*, int))xfs_efi_item_unpin, | 227 | .iop_unpin = (void(*)(xfs_log_item_t*))xfs_efi_item_unpin, |
228 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t *)) | 228 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t *)) |
229 | xfs_efi_item_unpin_remove, | 229 | xfs_efi_item_unpin_remove, |
230 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_efi_item_trylock, | 230 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_efi_item_trylock, |
@@ -425,7 +425,7 @@ xfs_efd_item_pin(xfs_efd_log_item_t *efdp) | |||
425 | */ | 425 | */ |
426 | /*ARGSUSED*/ | 426 | /*ARGSUSED*/ |
427 | STATIC void | 427 | STATIC void |
428 | xfs_efd_item_unpin(xfs_efd_log_item_t *efdp, int stale) | 428 | xfs_efd_item_unpin(xfs_efd_log_item_t *efdp) |
429 | { | 429 | { |
430 | return; | 430 | return; |
431 | } | 431 | } |
@@ -515,7 +515,7 @@ static struct xfs_item_ops xfs_efd_item_ops = { | |||
515 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) | 515 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) |
516 | xfs_efd_item_format, | 516 | xfs_efd_item_format, |
517 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_efd_item_pin, | 517 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_efd_item_pin, |
518 | .iop_unpin = (void(*)(xfs_log_item_t*, int))xfs_efd_item_unpin, | 518 | .iop_unpin = (void(*)(xfs_log_item_t*))xfs_efd_item_unpin, |
519 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t*)) | 519 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t*)) |
520 | xfs_efd_item_unpin_remove, | 520 | xfs_efd_item_unpin_remove, |
521 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_efd_item_trylock, | 521 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_efd_item_trylock, |
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 03471757bc88..cf8249a60004 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c | |||
@@ -557,8 +557,7 @@ xfs_inode_item_pin( | |||
557 | /* ARGSUSED */ | 557 | /* ARGSUSED */ |
558 | STATIC void | 558 | STATIC void |
559 | xfs_inode_item_unpin( | 559 | xfs_inode_item_unpin( |
560 | xfs_inode_log_item_t *iip, | 560 | xfs_inode_log_item_t *iip) |
561 | int stale) | ||
562 | { | 561 | { |
563 | struct xfs_inode *ip = iip->ili_inode; | 562 | struct xfs_inode *ip = iip->ili_inode; |
564 | 563 | ||
@@ -574,7 +573,7 @@ xfs_inode_item_unpin_remove( | |||
574 | xfs_inode_log_item_t *iip, | 573 | xfs_inode_log_item_t *iip, |
575 | xfs_trans_t *tp) | 574 | xfs_trans_t *tp) |
576 | { | 575 | { |
577 | xfs_inode_item_unpin(iip, 0); | 576 | xfs_inode_item_unpin(iip); |
578 | } | 577 | } |
579 | 578 | ||
580 | /* | 579 | /* |
@@ -840,7 +839,7 @@ static struct xfs_item_ops xfs_inode_item_ops = { | |||
840 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) | 839 | .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) |
841 | xfs_inode_item_format, | 840 | xfs_inode_item_format, |
842 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_inode_item_pin, | 841 | .iop_pin = (void(*)(xfs_log_item_t*))xfs_inode_item_pin, |
843 | .iop_unpin = (void(*)(xfs_log_item_t*, int))xfs_inode_item_unpin, | 842 | .iop_unpin = (void(*)(xfs_log_item_t*))xfs_inode_item_unpin, |
844 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t*)) | 843 | .iop_unpin_remove = (void(*)(xfs_log_item_t*, xfs_trans_t*)) |
845 | xfs_inode_item_unpin_remove, | 844 | xfs_inode_item_unpin_remove, |
846 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_inode_item_trylock, | 845 | .iop_trylock = (uint(*)(xfs_log_item_t*))xfs_inode_item_trylock, |
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index f73e358bae8d..6962f2bd3da3 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c | |||
@@ -1451,6 +1451,6 @@ xfs_trans_chunk_committed( | |||
1451 | * flags, if anyone else stales the buffer we do not | 1451 | * flags, if anyone else stales the buffer we do not |
1452 | * want to pay any attention to it. | 1452 | * want to pay any attention to it. |
1453 | */ | 1453 | */ |
1454 | IOP_UNPIN(lip, lidp->lid_flags & XFS_LID_BUF_STALE); | 1454 | IOP_UNPIN(lip); |
1455 | } | 1455 | } |
1456 | } | 1456 | } |
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index 79c8bab9dfff..82574ef36580 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h | |||
@@ -159,7 +159,6 @@ typedef struct xfs_log_item_desc { | |||
159 | 159 | ||
160 | #define XFS_LID_DIRTY 0x1 | 160 | #define XFS_LID_DIRTY 0x1 |
161 | #define XFS_LID_PINNED 0x2 | 161 | #define XFS_LID_PINNED 0x2 |
162 | #define XFS_LID_BUF_STALE 0x8 | ||
163 | 162 | ||
164 | /* | 163 | /* |
165 | * This structure is used to maintain a chunk list of log_item_desc | 164 | * This structure is used to maintain a chunk list of log_item_desc |
@@ -833,7 +832,7 @@ typedef struct xfs_item_ops { | |||
833 | uint (*iop_size)(xfs_log_item_t *); | 832 | uint (*iop_size)(xfs_log_item_t *); |
834 | void (*iop_format)(xfs_log_item_t *, struct xfs_log_iovec *); | 833 | void (*iop_format)(xfs_log_item_t *, struct xfs_log_iovec *); |
835 | void (*iop_pin)(xfs_log_item_t *); | 834 | void (*iop_pin)(xfs_log_item_t *); |
836 | void (*iop_unpin)(xfs_log_item_t *, int); | 835 | void (*iop_unpin)(xfs_log_item_t *); |
837 | void (*iop_unpin_remove)(xfs_log_item_t *, struct xfs_trans *); | 836 | void (*iop_unpin_remove)(xfs_log_item_t *, struct xfs_trans *); |
838 | uint (*iop_trylock)(xfs_log_item_t *); | 837 | uint (*iop_trylock)(xfs_log_item_t *); |
839 | void (*iop_unlock)(xfs_log_item_t *); | 838 | void (*iop_unlock)(xfs_log_item_t *); |
@@ -846,7 +845,7 @@ typedef struct xfs_item_ops { | |||
846 | #define IOP_SIZE(ip) (*(ip)->li_ops->iop_size)(ip) | 845 | #define IOP_SIZE(ip) (*(ip)->li_ops->iop_size)(ip) |
847 | #define IOP_FORMAT(ip,vp) (*(ip)->li_ops->iop_format)(ip, vp) | 846 | #define IOP_FORMAT(ip,vp) (*(ip)->li_ops->iop_format)(ip, vp) |
848 | #define IOP_PIN(ip) (*(ip)->li_ops->iop_pin)(ip) | 847 | #define IOP_PIN(ip) (*(ip)->li_ops->iop_pin)(ip) |
849 | #define IOP_UNPIN(ip, flags) (*(ip)->li_ops->iop_unpin)(ip, flags) | 848 | #define IOP_UNPIN(ip) (*(ip)->li_ops->iop_unpin)(ip) |
850 | #define IOP_UNPIN_REMOVE(ip,tp) (*(ip)->li_ops->iop_unpin_remove)(ip, tp) | 849 | #define IOP_UNPIN_REMOVE(ip,tp) (*(ip)->li_ops->iop_unpin_remove)(ip, tp) |
851 | #define IOP_TRYLOCK(ip) (*(ip)->li_ops->iop_trylock)(ip) | 850 | #define IOP_TRYLOCK(ip) (*(ip)->li_ops->iop_trylock)(ip) |
852 | #define IOP_UNLOCK(ip) (*(ip)->li_ops->iop_unlock)(ip) | 851 | #define IOP_UNLOCK(ip) (*(ip)->li_ops->iop_unlock)(ip) |
diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index fb586360d1c9..4e1b6892c106 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c | |||
@@ -696,7 +696,6 @@ xfs_trans_log_buf(xfs_trans_t *tp, | |||
696 | 696 | ||
697 | tp->t_flags |= XFS_TRANS_DIRTY; | 697 | tp->t_flags |= XFS_TRANS_DIRTY; |
698 | lidp->lid_flags |= XFS_LID_DIRTY; | 698 | lidp->lid_flags |= XFS_LID_DIRTY; |
699 | lidp->lid_flags &= ~XFS_LID_BUF_STALE; | ||
700 | bip->bli_flags |= XFS_BLI_LOGGED; | 699 | bip->bli_flags |= XFS_BLI_LOGGED; |
701 | xfs_buf_item_log(bip, first, last); | 700 | xfs_buf_item_log(bip, first, last); |
702 | } | 701 | } |
@@ -782,7 +781,7 @@ xfs_trans_binval( | |||
782 | bip->bli_format.blf_flags |= XFS_BLI_CANCEL; | 781 | bip->bli_format.blf_flags |= XFS_BLI_CANCEL; |
783 | memset((char *)(bip->bli_format.blf_data_map), 0, | 782 | memset((char *)(bip->bli_format.blf_data_map), 0, |
784 | (bip->bli_format.blf_map_size * sizeof(uint))); | 783 | (bip->bli_format.blf_map_size * sizeof(uint))); |
785 | lidp->lid_flags |= XFS_LID_DIRTY|XFS_LID_BUF_STALE; | 784 | lidp->lid_flags |= XFS_LID_DIRTY; |
786 | tp->t_flags |= XFS_TRANS_DIRTY; | 785 | tp->t_flags |= XFS_TRANS_DIRTY; |
787 | } | 786 | } |
788 | 787 | ||