Linux 6.12: FMODE_UNSIGNED_OFFSET is now FOP_UNSIGNED_OFFSET

torvalds/linux@641bb4394f asserts that this is a static flag, not
intended to be variable per-file, so it moves it to
file_operations instead. We just change our check to follow.

No configure check is necessary because FOP_UNSIGNED_OFFSET didn't exist
before this commit, and FMODE_UNSIGNED_OFFSET flag is removed in the
same commit, so there's no chance of a conflict.

It's not clear to me that we need this check at all, as we never set
this flag on our own files, and I can't see any way that our llseek
handler could recieve a file from another filesystem. But, the whole
zpl_llseek() has a number of opportunities for pleasing cleanup that are
nothing to do with this change, so I'll leave that for a future change.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <robn@despairlabs.com>
Closes #16582
This commit is contained in:
Rob Norris 2024-09-24 16:19:18 +10:00 committed by Brian Behlendorf
parent d6b8c17f1d
commit df3b9d881b

View File

@ -68,7 +68,11 @@ lseek_execute(
loff_t offset, loff_t offset,
loff_t maxsize) loff_t maxsize)
{ {
#ifdef FMODE_UNSIGNED_OFFSET
if (offset < 0 && !(filp->f_mode & FMODE_UNSIGNED_OFFSET)) if (offset < 0 && !(filp->f_mode & FMODE_UNSIGNED_OFFSET))
#else
if (offset < 0 && !(filp->f_op->fop_flags & FOP_UNSIGNED_OFFSET))
#endif
return (-EINVAL); return (-EINVAL);
if (offset > maxsize) if (offset > maxsize)