Description
In the Linux kernel, the following vulnerability has been resolved: xfs: restore nofs context unconditionally in xfs_trans_roll When __xfs_trans_commit() fails in xfs_trans_roll(), the NOFS context is cleared but only restored in the success path. This leaves the error path without nofs protection, causing a circular lock dependency between xfs_nondir_ilock_class and fs_reclaim: CPU0 CPU1 ---- ---- lock(&xfs_nondir_ilock_class); lock(fs_reclaim); lock(&xfs_nondir_ilock_class); lock(fs_reclaim); Fix this by moving xfs_trans_set_context() before the error check so that nofs context is always restored on the new transaction.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
a1ca658d649a4d8972e2e21ac2625b633217e327 to < b09198cf90ccf296970b774beea1c1ddb260f94caffecteda1ca658d649a4d8972e2e21ac2625b633217e327 to < 4d00a39c676274f4071b467e630565ac1e3ae0f2affecteda1ca658d649a4d8972e2e21ac2625b633217e327 to < 0241ea5fb0fe86d2a673163b2f5815111aadc7f7affected
Linux Linux
Default version status: affected
7.0affected0 to < 7.0unaffected7.1.11 to ≤ 7.1.*unaffected7.2.1 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected