| From hch@lst.de Tue Jan 10 11:30:48 2017 |
| From: Christoph Hellwig <hch@lst.de> |
| Date: Mon, 9 Jan 2017 16:38:59 +0100 |
| Subject: xfs: use GPF_NOFS when allocating btree cursors |
| To: stable@vger.kernel.org |
| Cc: linux-xfs@vger.kernel.org, "Darrick J. Wong" <darrick.wong@oracle.com>, Dave Chinner <david@fromorbit.com> |
| Message-ID: <1483976343-661-29-git-send-email-hch@lst.de> |
| |
| |
| From: "Darrick J. Wong" <darrick.wong@oracle.com> |
| |
| commit b24a978c377be5f14e798cb41238e66fe51aab2f upstream. |
| |
| Use NOFS for allocating btree cursors, since they can be called |
| under the ilock. |
| |
| Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> |
| Reviewed-by: Dave Chinner <dchinner@redhat.com> |
| Signed-off-by: Dave Chinner <david@fromorbit.com> |
| Cc: Christoph Hellwig <hch@lst.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| fs/xfs/libxfs/xfs_alloc_btree.c | 2 +- |
| fs/xfs/libxfs/xfs_bmap_btree.c | 2 +- |
| fs/xfs/libxfs/xfs_ialloc_btree.c | 2 +- |
| 3 files changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/fs/xfs/libxfs/xfs_alloc_btree.c |
| +++ b/fs/xfs/libxfs/xfs_alloc_btree.c |
| @@ -421,7 +421,7 @@ xfs_allocbt_init_cursor( |
| |
| ASSERT(btnum == XFS_BTNUM_BNO || btnum == XFS_BTNUM_CNT); |
| |
| - cur = kmem_zone_zalloc(xfs_btree_cur_zone, KM_SLEEP); |
| + cur = kmem_zone_zalloc(xfs_btree_cur_zone, KM_NOFS); |
| |
| cur->bc_tp = tp; |
| cur->bc_mp = mp; |
| --- a/fs/xfs/libxfs/xfs_bmap_btree.c |
| +++ b/fs/xfs/libxfs/xfs_bmap_btree.c |
| @@ -796,7 +796,7 @@ xfs_bmbt_init_cursor( |
| struct xfs_btree_cur *cur; |
| ASSERT(whichfork != XFS_COW_FORK); |
| |
| - cur = kmem_zone_zalloc(xfs_btree_cur_zone, KM_SLEEP); |
| + cur = kmem_zone_zalloc(xfs_btree_cur_zone, KM_NOFS); |
| |
| cur->bc_tp = tp; |
| cur->bc_mp = mp; |
| --- a/fs/xfs/libxfs/xfs_ialloc_btree.c |
| +++ b/fs/xfs/libxfs/xfs_ialloc_btree.c |
| @@ -357,7 +357,7 @@ xfs_inobt_init_cursor( |
| struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); |
| struct xfs_btree_cur *cur; |
| |
| - cur = kmem_zone_zalloc(xfs_btree_cur_zone, KM_SLEEP); |
| + cur = kmem_zone_zalloc(xfs_btree_cur_zone, KM_NOFS); |
| |
| cur->bc_tp = tp; |
| cur->bc_mp = mp; |