diff options
author | 2018-10-11 23:07:30 +0200 | |
---|---|---|
committer | 2018-10-11 23:07:30 +0200 | |
commit | 90fb814b6c025da45f71db1703cffe3fe87f575c (patch) | |
tree | 5fd739d407654df6f9d6e82900a45e027dd8b9f0 /fs/xfs/xfs_trans.c | |
parent | i2c: designware: Set IRQF_NO_SUSPEND flag for all BYT and CHT controllers (diff) | |
parent | Linux 4.19-rc7 (diff) | |
download | wireguard-linux-90fb814b6c025da45f71db1703cffe3fe87f575c.tar.xz wireguard-linux-90fb814b6c025da45f71db1703cffe3fe87f575c.zip |
Merge tag 'v4.19-rc7' into i2c/for-4.20
This is the 4.19-rc7 release
Diffstat (limited to '')
-rw-r--r-- | fs/xfs/xfs_trans.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index bedc5a5133a5..912b42f5fe4a 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -259,6 +259,14 @@ xfs_trans_alloc( struct xfs_trans *tp; int error; + /* + * Allocate the handle before we do our freeze accounting and setting up + * GFP_NOFS allocation context so that we avoid lockdep false positives + * by doing GFP_KERNEL allocations inside sb_start_intwrite(). + */ + tp = kmem_zone_zalloc(xfs_trans_zone, + (flags & XFS_TRANS_NOFS) ? KM_NOFS : KM_SLEEP); + if (!(flags & XFS_TRANS_NO_WRITECOUNT)) sb_start_intwrite(mp->m_super); @@ -270,8 +278,6 @@ xfs_trans_alloc( mp->m_super->s_writers.frozen == SB_FREEZE_COMPLETE); atomic_inc(&mp->m_active_trans); - tp = kmem_zone_zalloc(xfs_trans_zone, - (flags & XFS_TRANS_NOFS) ? KM_NOFS : KM_SLEEP); tp->t_magic = XFS_TRANS_HEADER_MAGIC; tp->t_flags = flags; tp->t_mountp = mp; |