On 8/19/25 10:23 AM, Christoph Hellwig wrote: ... > The one thing we had a discussion about was ENOSPC, which can happen > with some thing provisioning solutions (and apparently redhat cares > about dm-thin there). For this we do want retry metadata writes > based on that design, and special casing it would be good, because > an escaping ENOSPC would do the entirely wrong thing in all layers > about the buffer cache. > > Another one is EAGAIN for non-blocking I/O. That's mostly a data > path thing, and we can't really deal with it, but if we make full > use of it, it needs to be special cased. > > And then EOPNOTSUP if we want to try optional operations that we > can't query ahead of time. SCSI WRITE_SAME is one of them, but > we fortunately hide that behind block layer helpers. > > For file system directly dealing with persistent reservations > BLK_STS_RESV_CONFLICT might be another one, but I hope we don't > get there :) > > If the file system ever directly makes use of Command duration > limits, BLK_STS_DURATION_LIMIT might be another one. > > As you see very little of that is actually relevant for XFS, > and even less for the buffer cache. Ok, this is getting a little more complex. The ENODATA problem is very specific, and has (oddly) been reported by users/customers twice in recent days. Maybe I can send an acceptable fix for that specific, observed problem (also suitable for -stable etc), then another one that is more ambitious on top of that. -Eric