Lines Matching refs:ip

74 	struct xfs_inode	*ip;  in xfs_find_handle()  local
87 ip = XFS_I(inode); in xfs_find_handle()
104 memcpy(&handle.ha_fsid, ip->i_mount->m_fixedfsid, sizeof(xfs_fsid_t)); in xfs_find_handle()
116 handle.ha_fid.fid_gen = ip->i_d.di_gen; in xfs_find_handle()
117 handle.ha_fid.fid_ino = ip->i_ino; in xfs_find_handle()
322 xfs_inode_t *ip, in xfs_set_dmattrs() argument
326 xfs_mount_t *mp = ip->i_mount; in xfs_set_dmattrs()
342 xfs_ilock(ip, XFS_ILOCK_EXCL); in xfs_set_dmattrs()
343 xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); in xfs_set_dmattrs()
345 ip->i_d.di_dmevmask = evmask; in xfs_set_dmattrs()
346 ip->i_d.di_dmstate = state; in xfs_set_dmattrs()
348 xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); in xfs_set_dmattrs()
603 struct xfs_inode *ip, in xfs_ioc_space() argument
619 if (!xfs_sb_version_hasextflgbit(&ip->i_mount->m_sb) && in xfs_ioc_space()
641 xfs_ilock(ip, iolock); in xfs_ioc_space()
646 xfs_ilock(ip, XFS_MMAPLOCK_EXCL); in xfs_ioc_space()
656 bf->l_start += XFS_ISIZE(ip); in xfs_ioc_space()
696 error = xfs_zero_file_space(ip, bf->l_start, bf->l_len); in xfs_ioc_space()
701 error = xfs_alloc_file_space(ip, bf->l_start, bf->l_len, in xfs_ioc_space()
706 error = xfs_free_file_space(ip, bf->l_start, bf->l_len); in xfs_ioc_space()
713 if (bf->l_start > XFS_ISIZE(ip)) { in xfs_ioc_space()
714 error = xfs_alloc_file_space(ip, XFS_ISIZE(ip), in xfs_ioc_space()
715 bf->l_start - XFS_ISIZE(ip), 0); in xfs_ioc_space()
723 error = xfs_setattr_size(ip, &iattr); in xfs_ioc_space()
733 error = xfs_update_prealloc_flags(ip, flags); in xfs_ioc_space()
736 xfs_iunlock(ip, iolock); in xfs_ioc_space()
895 xfs_inode_t *ip, in xfs_ioc_fsgetxattr() argument
903 xfs_ilock(ip, XFS_ILOCK_SHARED); in xfs_ioc_fsgetxattr()
904 fa.fsx_xflags = xfs_ip2xflags(ip); in xfs_ioc_fsgetxattr()
905 fa.fsx_extsize = ip->i_d.di_extsize << ip->i_mount->m_sb.sb_blocklog; in xfs_ioc_fsgetxattr()
906 fa.fsx_projid = xfs_get_projid(ip); in xfs_ioc_fsgetxattr()
909 if (ip->i_afp) { in xfs_ioc_fsgetxattr()
910 if (ip->i_afp->if_flags & XFS_IFEXTENTS) in xfs_ioc_fsgetxattr()
911 fa.fsx_nextents = ip->i_afp->if_bytes / in xfs_ioc_fsgetxattr()
914 fa.fsx_nextents = ip->i_d.di_anextents; in xfs_ioc_fsgetxattr()
918 if (ip->i_df.if_flags & XFS_IFEXTENTS) in xfs_ioc_fsgetxattr()
919 fa.fsx_nextents = ip->i_df.if_bytes / in xfs_ioc_fsgetxattr()
922 fa.fsx_nextents = ip->i_d.di_nextents; in xfs_ioc_fsgetxattr()
924 xfs_iunlock(ip, XFS_ILOCK_SHARED); in xfs_ioc_fsgetxattr()
933 struct xfs_inode *ip, in xfs_set_diflags() argument
939 di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC); in xfs_set_diflags()
954 if (S_ISDIR(ip->i_d.di_mode)) { in xfs_set_diflags()
963 } else if (S_ISREG(ip->i_d.di_mode)) { in xfs_set_diflags()
970 ip->i_d.di_flags = di_flags; in xfs_set_diflags()
975 struct xfs_inode *ip) in xfs_diflags_to_linux() argument
977 struct inode *inode = VFS_I(ip); in xfs_diflags_to_linux()
978 unsigned int xflags = xfs_ip2xflags(ip); in xfs_diflags_to_linux()
1001 struct xfs_inode *ip, in xfs_ioctl_setattr_xflags() argument
1004 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr_xflags()
1007 if ((ip->i_d.di_nextents || ip->i_delayed_blks) && in xfs_ioctl_setattr_xflags()
1008 XFS_IS_REALTIME_INODE(ip) != (fa->fsx_xflags & XFS_XFLAG_REALTIME)) in xfs_ioctl_setattr_xflags()
1014 (ip->i_d.di_extsize % mp->m_sb.sb_rextsize)) in xfs_ioctl_setattr_xflags()
1022 if (((ip->i_d.di_flags & (XFS_DIFLAG_IMMUTABLE | XFS_DIFLAG_APPEND)) || in xfs_ioctl_setattr_xflags()
1027 xfs_set_diflags(ip, fa->fsx_xflags); in xfs_ioctl_setattr_xflags()
1028 xfs_diflags_to_linux(ip); in xfs_ioctl_setattr_xflags()
1029 xfs_trans_ichgtime(tp, ip, XFS_ICHGTIME_CHG); in xfs_ioctl_setattr_xflags()
1030 xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); in xfs_ioctl_setattr_xflags()
1043 struct xfs_inode *ip) in xfs_ioctl_setattr_get_trans() argument
1045 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr_get_trans()
1059 xfs_ilock(ip, XFS_ILOCK_EXCL); in xfs_ioctl_setattr_get_trans()
1060 xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); in xfs_ioctl_setattr_get_trans()
1068 if (!inode_owner_or_capable(VFS_I(ip))) { in xfs_ioctl_setattr_get_trans()
1099 struct xfs_inode *ip, in xfs_ioctl_setattr_check_extsize() argument
1102 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr_check_extsize()
1104 if ((fa->fsx_xflags & XFS_XFLAG_EXTSIZE) && !S_ISREG(ip->i_d.di_mode)) in xfs_ioctl_setattr_check_extsize()
1108 !S_ISDIR(ip->i_d.di_mode)) in xfs_ioctl_setattr_check_extsize()
1111 if (S_ISREG(ip->i_d.di_mode) && ip->i_d.di_nextents && in xfs_ioctl_setattr_check_extsize()
1112 ((ip->i_d.di_extsize << mp->m_sb.sb_blocklog) != fa->fsx_extsize)) in xfs_ioctl_setattr_check_extsize()
1123 if (XFS_IS_REALTIME_INODE(ip) || in xfs_ioctl_setattr_check_extsize()
1142 struct xfs_inode *ip, in xfs_ioctl_setattr_check_projid() argument
1147 !xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb)) in xfs_ioctl_setattr_check_projid()
1158 if (xfs_get_projid(ip) != fa->fsx_projid) in xfs_ioctl_setattr_check_projid()
1161 (ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT)) in xfs_ioctl_setattr_check_projid()
1169 xfs_inode_t *ip, in xfs_ioctl_setattr() argument
1172 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr()
1179 trace_xfs_ioctl_setattr(ip); in xfs_ioctl_setattr()
1181 code = xfs_ioctl_setattr_check_projid(ip, fa); in xfs_ioctl_setattr()
1194 code = xfs_qm_vop_dqalloc(ip, ip->i_d.di_uid, in xfs_ioctl_setattr()
1195 ip->i_d.di_gid, fa->fsx_projid, in xfs_ioctl_setattr()
1201 tp = xfs_ioctl_setattr_get_trans(ip); in xfs_ioctl_setattr()
1209 xfs_get_projid(ip) != fa->fsx_projid) { in xfs_ioctl_setattr()
1210 code = xfs_qm_vop_chown_reserve(tp, ip, udqp, NULL, pdqp, in xfs_ioctl_setattr()
1216 code = xfs_ioctl_setattr_check_extsize(ip, fa); in xfs_ioctl_setattr()
1220 code = xfs_ioctl_setattr_xflags(tp, ip, fa); in xfs_ioctl_setattr()
1232 if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && in xfs_ioctl_setattr()
1233 !capable_wrt_inode_uidgid(VFS_I(ip), CAP_FSETID)) in xfs_ioctl_setattr()
1234 ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); in xfs_ioctl_setattr()
1237 if (xfs_get_projid(ip) != fa->fsx_projid) { in xfs_ioctl_setattr()
1239 olddquot = xfs_qm_vop_chown(tp, ip, in xfs_ioctl_setattr()
1240 &ip->i_pdquot, pdqp); in xfs_ioctl_setattr()
1242 ASSERT(ip->i_d.di_version > 1); in xfs_ioctl_setattr()
1243 xfs_set_projid(ip, fa->fsx_projid); in xfs_ioctl_setattr()
1251 if (ip->i_d.di_flags & (XFS_DIFLAG_EXTSIZE | XFS_DIFLAG_EXTSZINHERIT)) in xfs_ioctl_setattr()
1252 ip->i_d.di_extsize = fa->fsx_extsize >> mp->m_sb.sb_blocklog; in xfs_ioctl_setattr()
1254 ip->i_d.di_extsize = 0; in xfs_ioctl_setattr()
1277 xfs_inode_t *ip, in xfs_ioc_fssetxattr() argument
1290 error = xfs_ioctl_setattr(ip, &fa); in xfs_ioc_fssetxattr()
1297 xfs_inode_t *ip, in xfs_ioc_getxflags() argument
1302 flags = xfs_di2lxflags(ip->i_d.di_flags); in xfs_ioc_getxflags()
1310 struct xfs_inode *ip, in xfs_ioc_setxflags() argument
1327 fa.fsx_xflags = xfs_merge_ioc_xflags(flags, xfs_ip2xflags(ip)); in xfs_ioc_setxflags()
1333 tp = xfs_ioctl_setattr_get_trans(ip); in xfs_ioc_setxflags()
1339 error = xfs_ioctl_setattr_xflags(tp, ip, &fa); in xfs_ioc_setxflags()
1366 struct xfs_inode *ip, in xfs_ioc_getbmap() argument
1384 error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, in xfs_ioc_getbmap()
1409 struct xfs_inode *ip, in xfs_ioc_getbmapx() argument
1424 error = xfs_getbmap(ip, &bmx, xfs_getbmapx_format, in xfs_ioc_getbmapx()
1440 xfs_inode_t *ip, *tip; in xfs_ioc_swapext() local
1477 ip = XFS_I(file_inode(f.file)); in xfs_ioc_swapext()
1480 if (ip->i_mount != tip->i_mount) { in xfs_ioc_swapext()
1485 if (ip->i_ino == tip->i_ino) { in xfs_ioc_swapext()
1490 if (XFS_FORCED_SHUTDOWN(ip->i_mount)) { in xfs_ioc_swapext()
1495 error = xfs_swap_extents(ip, tip, sxp); in xfs_ioc_swapext()
1518 struct xfs_inode *ip = XFS_I(inode); in xfs_file_ioctl() local
1519 struct xfs_mount *mp = ip->i_mount; in xfs_file_ioctl()
1527 trace_xfs_file_ioctl(ip); in xfs_file_ioctl()
1545 return xfs_ioc_space(ip, inode, filp, ioflags, cmd, &bf); in xfs_file_ioctl()
1550 XFS_IS_REALTIME_INODE(ip) ? in xfs_file_ioctl()
1576 return xfs_ioc_fsgetxattr(ip, 0, arg); in xfs_file_ioctl()
1578 return xfs_ioc_fsgetxattr(ip, 1, arg); in xfs_file_ioctl()
1580 return xfs_ioc_fssetxattr(ip, filp, arg); in xfs_file_ioctl()
1582 return xfs_ioc_getxflags(ip, arg); in xfs_file_ioctl()
1584 return xfs_ioc_setxflags(ip, filp, arg); in xfs_file_ioctl()
1596 error = xfs_set_dmattrs(ip, dmi.fsd_dmevmask, in xfs_file_ioctl()
1604 return xfs_ioc_getbmap(ip, ioflags, cmd, arg); in xfs_file_ioctl()
1607 return xfs_ioc_getbmapx(ip, arg); in xfs_file_ioctl()