Skip to content

Commit

Permalink
Linux 6.12: FMODE_UNSIGNED_OFFSET is now FOP_UNSIGNED_OFFSET
Browse files Browse the repository at this point in the history
torvalds/linux@641bb4394f40 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 openzfs#16582
  • Loading branch information
robn authored and tonyhutter committed Nov 15, 2024
1 parent 08192d1 commit 9978315
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions include/os/linux/kernel/linux/vfs_compat.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,11 @@ lseek_execute(
loff_t offset,
loff_t maxsize)
{
#ifdef 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);

if (offset > maxsize)
Expand Down

0 comments on commit 9978315

Please sign in to comment.