mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
xfs: move the di_projid field to struct xfs_inode
In preparation of removing the historic icinode struct, move the projid field into the containing xfs_inode structure. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
7e2a8af528
commit
ceaf603c70
@ -206,10 +206,10 @@ xfs_inode_from_disk(
|
||||
*/
|
||||
if (unlikely(from->di_version == 1)) {
|
||||
set_nlink(inode, be16_to_cpu(from->di_onlink));
|
||||
to->di_projid = 0;
|
||||
ip->i_projid = 0;
|
||||
} else {
|
||||
set_nlink(inode, be32_to_cpu(from->di_nlink));
|
||||
to->di_projid = (prid_t)be16_to_cpu(from->di_projid_hi) << 16 |
|
||||
ip->i_projid = (prid_t)be16_to_cpu(from->di_projid_hi) << 16 |
|
||||
be16_to_cpu(from->di_projid_lo);
|
||||
}
|
||||
|
||||
@ -294,8 +294,8 @@ xfs_inode_to_disk(
|
||||
to->di_format = xfs_ifork_format(&ip->i_df);
|
||||
to->di_uid = cpu_to_be32(i_uid_read(inode));
|
||||
to->di_gid = cpu_to_be32(i_gid_read(inode));
|
||||
to->di_projid_lo = cpu_to_be16(from->di_projid & 0xffff);
|
||||
to->di_projid_hi = cpu_to_be16(from->di_projid >> 16);
|
||||
to->di_projid_lo = cpu_to_be16(ip->i_projid & 0xffff);
|
||||
to->di_projid_hi = cpu_to_be16(ip->i_projid >> 16);
|
||||
|
||||
memset(to->di_pad, 0, sizeof(to->di_pad));
|
||||
to->di_atime = xfs_inode_to_disk_ts(ip, inode->i_atime);
|
||||
|
@ -17,7 +17,6 @@ struct xfs_dinode;
|
||||
*/
|
||||
struct xfs_icdinode {
|
||||
uint16_t di_flushiter; /* incremented on flush */
|
||||
prid_t di_projid; /* owner's project id */
|
||||
xfs_fsize_t di_size; /* number of bytes in file */
|
||||
xfs_rfsblock_t di_nblocks; /* # of direct & btree blocks used */
|
||||
xfs_extlen_t di_extsize; /* basic/minimum extent size for file */
|
||||
|
@ -1208,7 +1208,7 @@ xfs_swap_extents_check_format(
|
||||
if (XFS_IS_QUOTA_ON(ip->i_mount) &&
|
||||
(!uid_eq(VFS_I(ip)->i_uid, VFS_I(tip)->i_uid) ||
|
||||
!gid_eq(VFS_I(ip)->i_gid, VFS_I(tip)->i_gid) ||
|
||||
ip->i_d.di_projid != tip->i_d.di_projid))
|
||||
ip->i_projid != tip->i_projid))
|
||||
return -EINVAL;
|
||||
|
||||
/* Should never get a local format */
|
||||
|
@ -953,7 +953,7 @@ xfs_qm_id_for_quotatype(
|
||||
case XFS_DQTYPE_GROUP:
|
||||
return i_gid_read(VFS_I(ip));
|
||||
case XFS_DQTYPE_PROJ:
|
||||
return ip->i_d.di_projid;
|
||||
return ip->i_projid;
|
||||
}
|
||||
ASSERT(0);
|
||||
return 0;
|
||||
|
@ -1204,7 +1204,7 @@ xfs_inode_match_id(
|
||||
return false;
|
||||
|
||||
if ((eofb->eof_flags & XFS_EOF_FLAGS_PRID) &&
|
||||
ip->i_d.di_projid != eofb->eof_prid)
|
||||
ip->i_projid != eofb->eof_prid)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@ -1228,7 +1228,7 @@ xfs_inode_match_id_union(
|
||||
return true;
|
||||
|
||||
if ((eofb->eof_flags & XFS_EOF_FLAGS_PRID) &&
|
||||
ip->i_d.di_projid == eofb->eof_prid)
|
||||
ip->i_projid == eofb->eof_prid)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
@ -809,7 +809,7 @@ xfs_init_new_inode(
|
||||
inode = VFS_I(ip);
|
||||
set_nlink(inode, nlink);
|
||||
inode->i_rdev = rdev;
|
||||
ip->i_d.di_projid = prid;
|
||||
ip->i_projid = prid;
|
||||
|
||||
if (dir && !(dir->i_mode & S_ISGID) &&
|
||||
(mp->m_flags & XFS_MOUNT_GRPID)) {
|
||||
@ -1288,7 +1288,7 @@ xfs_link(
|
||||
* the tree quota mechanism could be circumvented.
|
||||
*/
|
||||
if (unlikely((tdp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) &&
|
||||
tdp->i_d.di_projid != sip->i_d.di_projid)) {
|
||||
tdp->i_projid != sip->i_projid)) {
|
||||
error = -EXDEV;
|
||||
goto error_return;
|
||||
}
|
||||
@ -3126,7 +3126,7 @@ xfs_rename(
|
||||
* tree quota mechanism would be circumvented.
|
||||
*/
|
||||
if (unlikely((target_dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) &&
|
||||
target_dp->i_d.di_projid != src_ip->i_d.di_projid)) {
|
||||
target_dp->i_projid != src_ip->i_projid)) {
|
||||
error = -EXDEV;
|
||||
goto out_trans_cancel;
|
||||
}
|
||||
|
@ -54,6 +54,7 @@ typedef struct xfs_inode {
|
||||
/* Miscellaneous state. */
|
||||
unsigned long i_flags; /* see defined flags below */
|
||||
uint64_t i_delayed_blks; /* count of delay alloc blks */
|
||||
prid_t i_projid; /* owner's project id */
|
||||
|
||||
struct xfs_icdinode i_d; /* most of ondisk inode */
|
||||
|
||||
@ -175,7 +176,7 @@ static inline prid_t
|
||||
xfs_get_initial_prid(struct xfs_inode *dp)
|
||||
{
|
||||
if (dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT)
|
||||
return dp->i_d.di_projid;
|
||||
return dp->i_projid;
|
||||
|
||||
return XFS_PROJID_DEFAULT;
|
||||
}
|
||||
|
@ -357,8 +357,8 @@ xfs_inode_to_log_dinode(
|
||||
to->di_format = xfs_ifork_format(&ip->i_df);
|
||||
to->di_uid = i_uid_read(inode);
|
||||
to->di_gid = i_gid_read(inode);
|
||||
to->di_projid_lo = from->di_projid & 0xffff;
|
||||
to->di_projid_hi = from->di_projid >> 16;
|
||||
to->di_projid_lo = ip->i_projid & 0xffff;
|
||||
to->di_projid_hi = ip->i_projid >> 16;
|
||||
|
||||
memset(to->di_pad, 0, sizeof(to->di_pad));
|
||||
memset(to->di_pad3, 0, sizeof(to->di_pad3));
|
||||
|
@ -1123,7 +1123,7 @@ xfs_fill_fsxattr(
|
||||
fa->fsx_extsize = ip->i_d.di_extsize << ip->i_mount->m_sb.sb_blocklog;
|
||||
fa->fsx_cowextsize = ip->i_d.di_cowextsize <<
|
||||
ip->i_mount->m_sb.sb_blocklog;
|
||||
fa->fsx_projid = ip->i_d.di_projid;
|
||||
fa->fsx_projid = ip->i_projid;
|
||||
if (ifp && (ifp->if_flags & XFS_IFEXTENTS))
|
||||
fa->fsx_nextents = xfs_iext_count(ifp);
|
||||
else
|
||||
@ -1505,12 +1505,12 @@ xfs_ioctl_setattr(
|
||||
VFS_I(ip)->i_mode &= ~(S_ISUID|S_ISGID);
|
||||
|
||||
/* Change the ownerships and register project quota modifications */
|
||||
if (ip->i_d.di_projid != fa->fsx_projid) {
|
||||
if (ip->i_projid != fa->fsx_projid) {
|
||||
if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp)) {
|
||||
olddquot = xfs_qm_vop_chown(tp, ip,
|
||||
&ip->i_pdquot, pdqp);
|
||||
}
|
||||
ip->i_d.di_projid = fa->fsx_projid;
|
||||
ip->i_projid = fa->fsx_projid;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -737,7 +737,7 @@ xfs_setattr_nonsize(
|
||||
*/
|
||||
ASSERT(udqp == NULL);
|
||||
ASSERT(gdqp == NULL);
|
||||
error = xfs_qm_vop_dqalloc(ip, uid, gid, ip->i_d.di_projid,
|
||||
error = xfs_qm_vop_dqalloc(ip, uid, gid, ip->i_projid,
|
||||
qflags, &udqp, &gdqp, NULL);
|
||||
if (error)
|
||||
return error;
|
||||
|
@ -86,7 +86,7 @@ xfs_bulkstat_one_int(
|
||||
/* xfs_iget returns the following without needing
|
||||
* further change.
|
||||
*/
|
||||
buf->bs_projectid = ip->i_d.di_projid;
|
||||
buf->bs_projectid = ip->i_projid;
|
||||
buf->bs_ino = ino;
|
||||
buf->bs_uid = from_kuid(sb_userns, i_uid_into_mnt(mnt_userns, inode));
|
||||
buf->bs_gid = from_kgid(sb_userns, i_gid_into_mnt(mnt_userns, inode));
|
||||
|
@ -1716,7 +1716,7 @@ xfs_qm_vop_dqalloc(
|
||||
}
|
||||
if ((flags & XFS_QMOPT_PQUOTA) && XFS_IS_PQUOTA_ON(mp)) {
|
||||
ASSERT(O_pdqpp);
|
||||
if (ip->i_d.di_projid != prid) {
|
||||
if (ip->i_projid != prid) {
|
||||
xfs_iunlock(ip, lockflags);
|
||||
error = xfs_qm_dqget(mp, prid,
|
||||
XFS_DQTYPE_PROJ, true, &pq);
|
||||
@ -1877,7 +1877,7 @@ xfs_qm_vop_create_dqattach(
|
||||
}
|
||||
if (pdqp && XFS_IS_PQUOTA_ON(mp)) {
|
||||
ASSERT(ip->i_pdquot == NULL);
|
||||
ASSERT(ip->i_d.di_projid == pdqp->q_id);
|
||||
ASSERT(ip->i_projid == pdqp->q_id);
|
||||
|
||||
ip->i_pdquot = xfs_qm_dqhold(pdqp);
|
||||
xfs_trans_mod_dquot(tp, pdqp, XFS_TRANS_DQ_ICOUNT, 1);
|
||||
|
@ -60,7 +60,7 @@ xfs_qm_statvfs(
|
||||
struct xfs_mount *mp = ip->i_mount;
|
||||
struct xfs_dquot *dqp;
|
||||
|
||||
if (!xfs_qm_dqget(mp, ip->i_d.di_projid, XFS_DQTYPE_PROJ, false, &dqp)) {
|
||||
if (!xfs_qm_dqget(mp, ip->i_projid, XFS_DQTYPE_PROJ, false, &dqp)) {
|
||||
xfs_fill_statvfs_from_dquot(statp, dqp);
|
||||
xfs_qm_dqput(dqp);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user