diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-23 18:19:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-23 18:19:16 -0400 |
commit | a77febbef105554c5a37241cf903f48ab7bc03c7 (patch) | |
tree | d6f96d9d5837312ce6dc2db9f3fc93a243eec87b /fs/xfs/xfs_log.c | |
parent | 42cd71bf1e3a081b3150018bbf448cb6c8a844a5 (diff) | |
parent | bf59170a66bc3eaf3ee513aa6ce9774aa2ab5188 (diff) |
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
* 'for-linus' of git://oss.sgi.com/xfs/xfs:
xfs: obey minleft values during extent allocation correctly
xfs: reset buffer pointers before freeing them
xfs: avoid getting stuck during async inode flushes
xfs: fix xfs_itruncate_start tracing
xfs: fix duplicate workqueue initialisation
xfs: kill off xfs_printk()
xfs: fix race condition in AIL push trigger
xfs: make AIL target updates and compares 32bit safe.
xfs: always push the AIL to the target
xfs: exit AIL push work correctly when AIL is empty
xfs: ensure reclaim cursor is reset correctly at end of AG
xfs: add an x86 compat handler for XFS_IOC_ZERO_RANGE
xfs: fix compiler warning in xfs_trace.h
xfs: cleanup duplicate initializations
xfs: reduce the number of pagb_lock roundtrips in xfs_alloc_clear_busy
xfs: exact busy extent tracking
xfs: do not immediately reuse busy extent ranges
xfs: optimize AGFL refills
Diffstat (limited to 'fs/xfs/xfs_log.c')
-rw-r--r-- | fs/xfs/xfs_log.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index b612ce4520ae..211930246f20 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c | |||
@@ -1449,6 +1449,13 @@ xlog_dealloc_log(xlog_t *log) | |||
1449 | 1449 | ||
1450 | xlog_cil_destroy(log); | 1450 | xlog_cil_destroy(log); |
1451 | 1451 | ||
1452 | /* | ||
1453 | * always need to ensure that the extra buffer does not point to memory | ||
1454 | * owned by another log buffer before we free it. | ||
1455 | */ | ||
1456 | xfs_buf_set_empty(log->l_xbuf, log->l_iclog_size); | ||
1457 | xfs_buf_free(log->l_xbuf); | ||
1458 | |||
1452 | iclog = log->l_iclog; | 1459 | iclog = log->l_iclog; |
1453 | for (i=0; i<log->l_iclog_bufs; i++) { | 1460 | for (i=0; i<log->l_iclog_bufs; i++) { |
1454 | xfs_buf_free(iclog->ic_bp); | 1461 | xfs_buf_free(iclog->ic_bp); |
@@ -1458,7 +1465,6 @@ xlog_dealloc_log(xlog_t *log) | |||
1458 | } | 1465 | } |
1459 | spinlock_destroy(&log->l_icloglock); | 1466 | spinlock_destroy(&log->l_icloglock); |
1460 | 1467 | ||
1461 | xfs_buf_free(log->l_xbuf); | ||
1462 | log->l_mp->m_log = NULL; | 1468 | log->l_mp->m_log = NULL; |
1463 | kmem_free(log); | 1469 | kmem_free(log); |
1464 | } /* xlog_dealloc_log */ | 1470 | } /* xlog_dealloc_log */ |
@@ -3248,13 +3254,6 @@ xfs_log_ticket_get( | |||
3248 | return ticket; | 3254 | return ticket; |
3249 | } | 3255 | } |
3250 | 3256 | ||
3251 | xlog_tid_t | ||
3252 | xfs_log_get_trans_ident( | ||
3253 | struct xfs_trans *tp) | ||
3254 | { | ||
3255 | return tp->t_ticket->t_tid; | ||
3256 | } | ||
3257 | |||
3258 | /* | 3257 | /* |
3259 | * Allocate and initialise a new log ticket. | 3258 | * Allocate and initialise a new log ticket. |
3260 | */ | 3259 | */ |