diff options
| -rw-r--r-- | fs/ocfs2/localalloc.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c index 4dedd9789108..545f7892cdf3 100644 --- a/fs/ocfs2/localalloc.c +++ b/fs/ocfs2/localalloc.c | |||
| @@ -471,9 +471,6 @@ int ocfs2_reserve_local_alloc_bits(struct ocfs2_super *osb, | |||
| 471 | 471 | ||
| 472 | mutex_lock(&local_alloc_inode->i_mutex); | 472 | mutex_lock(&local_alloc_inode->i_mutex); |
| 473 | 473 | ||
| 474 | ac->ac_inode = local_alloc_inode; | ||
| 475 | ac->ac_which = OCFS2_AC_USE_LOCAL; | ||
| 476 | |||
| 477 | if (osb->local_alloc_state != OCFS2_LA_ENABLED) { | 474 | if (osb->local_alloc_state != OCFS2_LA_ENABLED) { |
| 478 | status = -ENOSPC; | 475 | status = -ENOSPC; |
| 479 | goto bail; | 476 | goto bail; |
| @@ -511,10 +508,14 @@ int ocfs2_reserve_local_alloc_bits(struct ocfs2_super *osb, | |||
| 511 | } | 508 | } |
| 512 | } | 509 | } |
| 513 | 510 | ||
| 511 | ac->ac_inode = local_alloc_inode; | ||
| 512 | ac->ac_which = OCFS2_AC_USE_LOCAL; | ||
| 514 | get_bh(osb->local_alloc_bh); | 513 | get_bh(osb->local_alloc_bh); |
| 515 | ac->ac_bh = osb->local_alloc_bh; | 514 | ac->ac_bh = osb->local_alloc_bh; |
| 516 | status = 0; | 515 | status = 0; |
| 517 | bail: | 516 | bail: |
| 517 | if (status < 0 && local_alloc_inode) | ||
| 518 | iput(local_alloc_inode); | ||
| 518 | 519 | ||
| 519 | mlog_exit(status); | 520 | mlog_exit(status); |
| 520 | return status; | 521 | return status; |
