From: Darrick J. Wong <djwong@xxxxxxxxxx> When we're creating a file as a child of an existing directory, use xfs_get_initial_prid to have the child inherit the project id of the directory if the directory has PROJINHERIT set, just like the kernel does. This fixes mkfs project id propagation with -d projinherit=X when protofiles are in use. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- libxfs/inode.c | 1 + libxfs/libxfs_api_defs.h | 1 + 2 files changed, 2 insertions(+) diff --git a/libxfs/inode.c b/libxfs/inode.c index 7f8f1164e08..c63cc0543d6 100644 --- a/libxfs/inode.c +++ b/libxfs/inode.c @@ -231,6 +231,7 @@ libxfs_dir_ialloc( .pip = dp, .uid = make_kuid(cr->cr_uid), .gid = make_kgid(cr->cr_gid), + .prid = dp ? libxfs_get_initial_prid(dp) : 0, .nlink = nlink, .rdev = rdev, .mode = mode, diff --git a/libxfs/libxfs_api_defs.h b/libxfs/libxfs_api_defs.h index 01ad6e54624..5752733a833 100644 --- a/libxfs/libxfs_api_defs.h +++ b/libxfs/libxfs_api_defs.h @@ -136,6 +136,7 @@ #define xfs_free_perag libxfs_free_perag #define xfs_fs_geometry libxfs_fs_geometry #define xfs_get_projid libxfs_get_projid +#define xfs_get_initial_prid libxfs_get_initial_prid #define xfs_highbit32 libxfs_highbit32 #define xfs_highbit64 libxfs_highbit64 #define xfs_ialloc_calc_rootino libxfs_ialloc_calc_rootino