diff options
Diffstat (limited to 'fs/xfs/xfs_da_btree.c')
-rw-r--r-- | fs/xfs/xfs_da_btree.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 26d09e2e1a7f..1b446849fb3d 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c | |||
@@ -2218,7 +2218,7 @@ xfs_da_state_free(xfs_da_state_t *state) | |||
2218 | 2218 | ||
2219 | #ifdef XFS_DABUF_DEBUG | 2219 | #ifdef XFS_DABUF_DEBUG |
2220 | xfs_dabuf_t *xfs_dabuf_global_list; | 2220 | xfs_dabuf_t *xfs_dabuf_global_list; |
2221 | lock_t xfs_dabuf_global_lock; | 2221 | spinlock_t xfs_dabuf_global_lock; |
2222 | #endif | 2222 | #endif |
2223 | 2223 | ||
2224 | /* | 2224 | /* |
@@ -2264,10 +2264,9 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra) | |||
2264 | } | 2264 | } |
2265 | #ifdef XFS_DABUF_DEBUG | 2265 | #ifdef XFS_DABUF_DEBUG |
2266 | { | 2266 | { |
2267 | SPLDECL(s); | ||
2268 | xfs_dabuf_t *p; | 2267 | xfs_dabuf_t *p; |
2269 | 2268 | ||
2270 | s = mutex_spinlock(&xfs_dabuf_global_lock); | 2269 | spin_lock(&xfs_dabuf_global_lock); |
2271 | for (p = xfs_dabuf_global_list; p; p = p->next) { | 2270 | for (p = xfs_dabuf_global_list; p; p = p->next) { |
2272 | ASSERT(p->blkno != dabuf->blkno || | 2271 | ASSERT(p->blkno != dabuf->blkno || |
2273 | p->target != dabuf->target); | 2272 | p->target != dabuf->target); |
@@ -2277,7 +2276,7 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra) | |||
2277 | xfs_dabuf_global_list->prev = dabuf; | 2276 | xfs_dabuf_global_list->prev = dabuf; |
2278 | dabuf->next = xfs_dabuf_global_list; | 2277 | dabuf->next = xfs_dabuf_global_list; |
2279 | xfs_dabuf_global_list = dabuf; | 2278 | xfs_dabuf_global_list = dabuf; |
2280 | mutex_spinunlock(&xfs_dabuf_global_lock, s); | 2279 | spin_unlock(&xfs_dabuf_global_lock); |
2281 | } | 2280 | } |
2282 | #endif | 2281 | #endif |
2283 | return dabuf; | 2282 | return dabuf; |
@@ -2319,16 +2318,14 @@ xfs_da_buf_done(xfs_dabuf_t *dabuf) | |||
2319 | kmem_free(dabuf->data, BBTOB(dabuf->bbcount)); | 2318 | kmem_free(dabuf->data, BBTOB(dabuf->bbcount)); |
2320 | #ifdef XFS_DABUF_DEBUG | 2319 | #ifdef XFS_DABUF_DEBUG |
2321 | { | 2320 | { |
2322 | SPLDECL(s); | 2321 | spin_lock(&xfs_dabuf_global_lock); |
2323 | |||
2324 | s = mutex_spinlock(&xfs_dabuf_global_lock); | ||
2325 | if (dabuf->prev) | 2322 | if (dabuf->prev) |
2326 | dabuf->prev->next = dabuf->next; | 2323 | dabuf->prev->next = dabuf->next; |
2327 | else | 2324 | else |
2328 | xfs_dabuf_global_list = dabuf->next; | 2325 | xfs_dabuf_global_list = dabuf->next; |
2329 | if (dabuf->next) | 2326 | if (dabuf->next) |
2330 | dabuf->next->prev = dabuf->prev; | 2327 | dabuf->next->prev = dabuf->prev; |
2331 | mutex_spinunlock(&xfs_dabuf_global_lock, s); | 2328 | spin_unlock(&xfs_dabuf_global_lock); |
2332 | } | 2329 | } |
2333 | memset(dabuf, 0, XFS_DA_BUF_SIZE(dabuf->nbuf)); | 2330 | memset(dabuf, 0, XFS_DA_BUF_SIZE(dabuf->nbuf)); |
2334 | #endif | 2331 | #endif |