diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-31 17:15:40 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-31 17:15:40 -0500 |
commit | fb9f1f17e9c117c0bf7a8f1b7a0efe5db5bc1836 (patch) | |
tree | 21f544b7489aa2a4b5fb9c754f67dc8ff6e9fe66 /fs/xfs/xfs_buf_item.c | |
parent | 2426ec8fe78884272a12a0a0f38b008a6195f094 (diff) | |
parent | 24446fc66fdebbdd8baca0f44fd2a47ad77ba580 (diff) |
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
* 'for-linus' of git://oss.sgi.com/xfs/xfs:
xfs: xfs_bmap_add_extent_delay_real should init br_startblock
xfs: fix dquot shaker deadlock
xfs: handle CIl transaction commit failures correctly
xfs: limit extsize to size of AGs and/or MAXEXTLEN
xfs: prevent extsize alignment from exceeding maximum extent size
xfs: limit extent length for allocation to AG size
xfs: speculative delayed allocation uses rounddown_power_of_2 badly
xfs: fix efi item leak on forced shutdown
xfs: fix log ticket leak on forced shutdown.
Diffstat (limited to 'fs/xfs/xfs_buf_item.c')
-rw-r--r-- | fs/xfs/xfs_buf_item.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 98c6f73b675..6f8c21ce0d6 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c | |||
@@ -427,13 +427,15 @@ xfs_buf_item_unpin( | |||
427 | 427 | ||
428 | if (remove) { | 428 | if (remove) { |
429 | /* | 429 | /* |
430 | * We have to remove the log item from the transaction | 430 | * If we are in a transaction context, we have to |
431 | * as we are about to release our reference to the | 431 | * remove the log item from the transaction as we are |
432 | * buffer. If we don't, the unlock that occurs later | 432 | * about to release our reference to the buffer. If we |
433 | * in xfs_trans_uncommit() will ry to reference the | 433 | * don't, the unlock that occurs later in |
434 | * xfs_trans_uncommit() will try to reference the | ||
434 | * buffer which we no longer have a hold on. | 435 | * buffer which we no longer have a hold on. |
435 | */ | 436 | */ |
436 | xfs_trans_del_item(lip); | 437 | if (lip->li_desc) |
438 | xfs_trans_del_item(lip); | ||
437 | 439 | ||
438 | /* | 440 | /* |
439 | * Since the transaction no longer refers to the buffer, | 441 | * Since the transaction no longer refers to the buffer, |