---
id: CVE-2026-80809
title: 'ocfs2: fix missing metadata reservation for large xattrs'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  ocfs2: fix missing metadata reservation for large xattrs

  [BUG]
  lsetxattr() panics the kernel when setting a large xattr value on a
  fragmented filesystem where the file…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    743ac908282ac97ef6e73ac3a92df2cc8ecb7479
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    04ba24bce61c917b5b3009f0db470cbb72e26a0d
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    b4663405ae29d36011cd712d243456f3f9ab700d
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    6a009f1e61b11d9e23d3c5aa1dacfb010945da45
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ec
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    6176313622e34fa3e2b66b9d0682d1e1c6b365c5
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    a3ccb57086dd7652d5ecb826486144198a98a8e9
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    50f0cbec45b0f3fd7e1263d01916518dbf31eb3f
  - >-
    Linux >= a78f9f4668949a6588b8872f162e86685c63d023 <
    0cdc7dde00ec63ac714271fa8b2918d630b8da1a
  - Linux 92f61d8a31e270f9391e7bcc0ac638bd4262a8e0
  - Linux >= 2.6.34.2 < 2.6.35
  - Linux 2.6.35
published: '2026-09-04'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T08:44:02.755Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-80809'
references:
  - url: 'https://git.kernel.org/stable/c/743ac908282ac97ef6e73ac3a92df2cc8ecb7479'
  - url: 'https://git.kernel.org/stable/c/04ba24bce61c917b5b3009f0db470cbb72e26a0d'
  - url: 'https://git.kernel.org/stable/c/b4663405ae29d36011cd712d243456f3f9ab700d'
  - url: 'https://git.kernel.org/stable/c/6a009f1e61b11d9e23d3c5aa1dacfb010945da45'
  - url: 'https://git.kernel.org/stable/c/b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ec'
  - url: 'https://git.kernel.org/stable/c/6176313622e34fa3e2b66b9d0682d1e1c6b365c5'
  - url: 'https://git.kernel.org/stable/c/a3ccb57086dd7652d5ecb826486144198a98a8e9'
  - url: 'https://git.kernel.org/stable/c/50f0cbec45b0f3fd7e1263d01916518dbf31eb3f'
  - url: 'https://git.kernel.org/stable/c/0cdc7dde00ec63ac714271fa8b2918d630b8da1a'
tags:
  - cve.org
epss: 0.00195
epssPercentile: 0.08588
ingestedAt: '2026-10-19T09:16:01.523Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

ocfs2: fix missing metadata reservation for large xattrs

[BUG]
lsetxattr() panics the kernel when setting a large xattr value on a
fragmented filesystem where the file already has an external xattr
block.

[CAUSE]
ocfs2_calc_xattr_set_need() never reserves metadata blocks for a new
xattr value's extent tree when the file already has an external xattr
block. The not_found path leaves meta_add at zero, so meta_ac is NULL
when ocfs2_xattr_extend_allocation() runs.

A new value root has room for a single extent record. On a fragmented
filesystem, the allocator cannot satisfy the xattr value in one
contiguous run, so each non-contiguous run requires its own extent
record. When the value root's extent list is full and meta_ac is NULL,
ocfs2_add_clusters_in_btree() returns RESTART_META, and
ocfs2_xattr_extend_allocation() hits BUG_ON(why == RESTART_META).

[FIX]
The case where no xattr block exists yet already calls
ocfs2_extend_meta_needed(&def_xv.xv.xr_list) to reserve value tree
metadata. Add the same reservation to the case where an xattr block
already exists, making the two cases consistent.

Replace the BUG_ON with a -ENOSPC return so that if RESTART_META is
returned despite the reservation, the error propagates to userspace
instead of panicking the kernel.

## Affected

- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < 743ac908282ac97ef6e73ac3a92df2cc8ecb7479`
- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < 04ba24bce61c917b5b3009f0db470cbb72e26a0d`
- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < b4663405ae29d36011cd712d243456f3f9ab700d`
- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < 6a009f1e61b11d9e23d3c5aa1dacfb010945da45`
- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < b9eb5c9fdd81d82976d4d5be2b2458eb7d7e46ec`
- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < 6176313622e34fa3e2b66b9d0682d1e1c6b365c5`
- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < a3ccb57086dd7652d5ecb826486144198a98a8e9`
- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < 50f0cbec45b0f3fd7e1263d01916518dbf31eb3f`
- `Linux >= a78f9f4668949a6588b8872f162e86685c63d023 < 0cdc7dde00ec63ac714271fa8b2918d630b8da1a`
- `Linux 92f61d8a31e270f9391e7bcc0ac638bd4262a8e0`
- `Linux >= 2.6.34.2 < 2.6.35`
- `Linux 2.6.35`

## Remediation

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