---
id: CVE-2026-80804
title: 'xfs: restore nofs context unconditionally in xfs_trans_roll'
summary: |-
  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 s…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= a1ca658d649a4d8972e2e21ac2625b633217e327 <
    b09198cf90ccf296970b774beea1c1ddb260f94c
  - >-
    Linux >= a1ca658d649a4d8972e2e21ac2625b633217e327 <
    4d00a39c676274f4071b467e630565ac1e3ae0f2
  - >-
    Linux >= a1ca658d649a4d8972e2e21ac2625b633217e327 <
    0241ea5fb0fe86d2a673163b2f5815111aadc7f7
  - Linux 7.0
published: '2026-09-04'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T08:43:57.464Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-80804'
references:
  - url: 'https://git.kernel.org/stable/c/b09198cf90ccf296970b774beea1c1ddb260f94c'
  - url: 'https://git.kernel.org/stable/c/4d00a39c676274f4071b467e630565ac1e3ae0f2'
  - url: 'https://git.kernel.org/stable/c/0241ea5fb0fe86d2a673163b2f5815111aadc7f7'
tags:
  - cve.org
epss: 0.00206
epssPercentile: 0.09998
ingestedAt: '2026-10-19T09:16:01.525Z'
---

## Overview

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

- `Linux >= a1ca658d649a4d8972e2e21ac2625b633217e327 < b09198cf90ccf296970b774beea1c1ddb260f94c`
- `Linux >= a1ca658d649a4d8972e2e21ac2625b633217e327 < 4d00a39c676274f4071b467e630565ac1e3ae0f2`
- `Linux >= a1ca658d649a4d8972e2e21ac2625b633217e327 < 0241ea5fb0fe86d2a673163b2f5815111aadc7f7`
- `Linux 7.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
