diff options
| author | Dave Airlie <airlied@redhat.com> | 2024-04-22 14:35:22 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2024-04-22 14:35:52 +1000 |
| commit | 0208ca55aa9c9b997da1f5bc45c4e98916323f08 (patch) | |
| tree | e3130b2116f7738ac7cd79ad71698f545bb7db69 /fs/xfs/xfs_inode.c | |
| parent | Merge tag 'drm-misc-next-2024-04-19' of https://gitlab.freedesktop.org/drm/mi... (diff) | |
| parent | Linux 6.9-rc5 (diff) | |
| download | linux-0208ca55aa9c9b997da1f5bc45c4e98916323f08.tar.gz linux-0208ca55aa9c9b997da1f5bc45c4e98916323f08.zip | |
Backmerge tag 'v6.9-rc5' into drm-next
Linux 6.9-rc5
I've had a persistent msm failure on clang, and the fix is in fixes
so just pull it back to fix that.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'fs/xfs/xfs_inode.c')
| -rw-r--r-- | fs/xfs/xfs_inode.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index ea48774f6b76..d55b42b2480d 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -1301,8 +1301,19 @@ xfs_link( */ if (unlikely((tdp->i_diflags & XFS_DIFLAG_PROJINHERIT) && tdp->i_projid != sip->i_projid)) { - error = -EXDEV; - goto error_return; + /* + * Project quota setup skips special files which can + * leave inodes in a PROJINHERIT directory without a + * project ID set. We need to allow links to be made + * to these "project-less" inodes because userspace + * expects them to succeed after project ID setup, + * but everything else should be rejected. + */ + if (!special_file(VFS_I(sip)->i_mode) || + sip->i_projid != 0) { + error = -EXDEV; + goto error_return; + } } if (!resblks) { |
