Lines Matching +full:buffered +full:- +full:positive
1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2000-2005 Silicon Graphics, Inc.
48 /* Return 0 on success or positive error */
56 xfs_bulkstat_to_bstat(breq->mp, &bs1, bstat); in xfs_fsbulkstat_one_fmt()
57 if (copy_to_user(breq->ubuffer, &bs1, sizeof(bs1))) in xfs_fsbulkstat_one_fmt()
58 return -EFAULT; in xfs_fsbulkstat_one_fmt()
70 if (copy_to_user(breq->ubuffer, &ig1, sizeof(struct xfs_inogrp))) in xfs_fsinumbers_fmt()
71 return -EFAULT; in xfs_fsinumbers_fmt()
81 struct xfs_mount *mp = XFS_I(file_inode(file))->i_mount; in xfs_ioc_fsbulkstat()
95 return -EPERM; in xfs_ioc_fsbulkstat()
98 return -EIO; in xfs_ioc_fsbulkstat()
101 return -EFAULT; in xfs_ioc_fsbulkstat()
104 return -EFAULT; in xfs_ioc_fsbulkstat()
107 return -EINVAL; in xfs_ioc_fsbulkstat()
110 return -EINVAL; in xfs_ioc_fsbulkstat()
129 lastino = breq.startino - 1; in xfs_ioc_fsbulkstat()
137 lastino = breq.startino - 1; in xfs_ioc_fsbulkstat()
145 return -EFAULT; in xfs_ioc_fsbulkstat()
149 return -EFAULT; in xfs_ioc_fsbulkstat()
154 /* Return 0 on success or positive error */
160 if (copy_to_user(breq->ubuffer, bstat, sizeof(struct xfs_bulkstat))) in xfs_bulkstat_fmt()
161 return -EFAULT; in xfs_bulkstat_fmt()
168 * should proceed; -ECANCELED if there's nothing to do; or the usual
178 if (hdr->icount == 0 || in xfs_bulk_ireq_setup()
179 (hdr->flags & ~XFS_BULK_IREQ_FLAGS_ALL) || in xfs_bulk_ireq_setup()
180 memchr_inv(hdr->reserved, 0, sizeof(hdr->reserved))) in xfs_bulk_ireq_setup()
181 return -EINVAL; in xfs_bulk_ireq_setup()
183 breq->startino = hdr->ino; in xfs_bulk_ireq_setup()
184 breq->ubuffer = ubuffer; in xfs_bulk_ireq_setup()
185 breq->icount = hdr->icount; in xfs_bulk_ireq_setup()
186 breq->ocount = 0; in xfs_bulk_ireq_setup()
187 breq->flags = 0; in xfs_bulk_ireq_setup()
194 if (hdr->flags & XFS_BULK_IREQ_SPECIAL) { in xfs_bulk_ireq_setup()
195 if (hdr->flags & XFS_BULK_IREQ_AGNO) in xfs_bulk_ireq_setup()
196 return -EINVAL; in xfs_bulk_ireq_setup()
198 switch (hdr->ino) { in xfs_bulk_ireq_setup()
200 breq->startino = mp->m_sb.sb_rootino; in xfs_bulk_ireq_setup()
203 return -EINVAL; in xfs_bulk_ireq_setup()
205 breq->icount = 1; in xfs_bulk_ireq_setup()
210 * If @hdr->ino is zero, we start iterating in that AG. If @hdr->ino is in xfs_bulk_ireq_setup()
213 if (hdr->flags & XFS_BULK_IREQ_AGNO) { in xfs_bulk_ireq_setup()
214 if (hdr->agno >= mp->m_sb.sb_agcount) in xfs_bulk_ireq_setup()
215 return -EINVAL; in xfs_bulk_ireq_setup()
217 if (breq->startino == 0) in xfs_bulk_ireq_setup()
218 breq->startino = XFS_AGINO_TO_INO(mp, hdr->agno, 0); in xfs_bulk_ireq_setup()
219 else if (XFS_INO_TO_AGNO(mp, breq->startino) < hdr->agno) in xfs_bulk_ireq_setup()
220 return -EINVAL; in xfs_bulk_ireq_setup()
222 breq->flags |= XFS_IBULK_SAME_AG; in xfs_bulk_ireq_setup()
225 if (XFS_INO_TO_AGNO(mp, breq->startino) > hdr->agno) in xfs_bulk_ireq_setup()
226 return -ECANCELED; in xfs_bulk_ireq_setup()
227 } else if (hdr->agno) in xfs_bulk_ireq_setup()
228 return -EINVAL; in xfs_bulk_ireq_setup()
231 if (XFS_INO_TO_AGNO(mp, breq->startino) >= mp->m_sb.sb_agcount) in xfs_bulk_ireq_setup()
232 return -ECANCELED; in xfs_bulk_ireq_setup()
234 if (hdr->flags & XFS_BULK_IREQ_NREXT64) in xfs_bulk_ireq_setup()
235 breq->flags |= XFS_IBULK_NREXT64; in xfs_bulk_ireq_setup()
238 if (hdr->flags & XFS_BULK_IREQ_METADIR) in xfs_bulk_ireq_setup()
239 breq->flags |= XFS_IBULK_METADIR; in xfs_bulk_ireq_setup()
253 hdr->ino = breq->startino; in xfs_bulk_ireq_teardown()
254 hdr->ocount = breq->ocount; in xfs_bulk_ireq_teardown()
264 struct xfs_mount *mp = XFS_I(file_inode(file))->i_mount; in xfs_ioc_bulkstat()
273 return -EPERM; in xfs_ioc_bulkstat()
276 return -EIO; in xfs_ioc_bulkstat()
278 if (copy_from_user(&hdr, &arg->hdr, sizeof(hdr))) in xfs_ioc_bulkstat()
279 return -EFAULT; in xfs_ioc_bulkstat()
281 error = xfs_bulk_ireq_setup(mp, &hdr, &breq, arg->bulkstat); in xfs_ioc_bulkstat()
282 if (error == -ECANCELED) in xfs_ioc_bulkstat()
293 if (copy_to_user(&arg->hdr, &hdr, sizeof(hdr))) in xfs_ioc_bulkstat()
294 return -EFAULT; in xfs_ioc_bulkstat()
304 if (copy_to_user(breq->ubuffer, igrp, sizeof(struct xfs_inumbers))) in xfs_inumbers_fmt()
305 return -EFAULT; in xfs_inumbers_fmt()
323 return -EPERM; in xfs_ioc_inumbers()
326 return -EIO; in xfs_ioc_inumbers()
328 if (copy_from_user(&hdr, &arg->hdr, sizeof(hdr))) in xfs_ioc_inumbers()
329 return -EFAULT; in xfs_ioc_inumbers()
332 return -EINVAL; in xfs_ioc_inumbers()
334 error = xfs_bulk_ireq_setup(mp, &hdr, &breq, arg->inumbers); in xfs_ioc_inumbers()
335 if (error == -ECANCELED) in xfs_ioc_inumbers()
346 if (copy_to_user(&arg->hdr, &hdr, sizeof(hdr))) in xfs_ioc_inumbers()
347 return -EFAULT; in xfs_ioc_inumbers()
373 return -EFAULT; in xfs_ioc_fsgeometry()
387 return -EFAULT; in xfs_ioc_ag_geometry()
389 return -EINVAL; in xfs_ioc_ag_geometry()
391 return -EINVAL; in xfs_ioc_ag_geometry()
395 return -EINVAL; in xfs_ioc_ag_geometry()
403 return -EFAULT; in xfs_ioc_ag_geometry()
417 return -EFAULT; in xfs_ioc_rtgroup_geometry()
419 return -EINVAL; in xfs_ioc_rtgroup_geometry()
421 return -EINVAL; in xfs_ioc_rtgroup_geometry()
423 return -EINVAL; in xfs_ioc_rtgroup_geometry()
427 return -EINVAL; in xfs_ioc_rtgroup_geometry()
435 return -EFAULT; in xfs_ioc_rtgroup_geometry()
449 struct xfs_mount *mp = ip->i_mount; in xfs_fill_fsxattr()
454 if (ip->i_diflags & XFS_DIFLAG_EXTSIZE) { in xfs_fill_fsxattr()
455 fa->fsx_extsize = XFS_FSB_TO_B(mp, ip->i_extsize); in xfs_fill_fsxattr()
456 } else if (ip->i_diflags & XFS_DIFLAG_EXTSZINHERIT) { in xfs_fill_fsxattr()
462 if ((ip->i_diflags & XFS_DIFLAG_RTINHERIT) && in xfs_fill_fsxattr()
463 xfs_extlen_to_rtxmod(mp, ip->i_extsize) > 0) { in xfs_fill_fsxattr()
464 fa->fsx_xflags &= ~(FS_XFLAG_EXTSIZE | in xfs_fill_fsxattr()
466 fa->fsx_extsize = 0; in xfs_fill_fsxattr()
468 fa->fsx_extsize = XFS_FSB_TO_B(mp, ip->i_extsize); in xfs_fill_fsxattr()
472 if (ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE) { in xfs_fill_fsxattr()
478 if ((ip->i_diflags & XFS_DIFLAG_RTINHERIT) && in xfs_fill_fsxattr()
479 ip->i_cowextsize % mp->m_sb.sb_rextsize > 0) { in xfs_fill_fsxattr()
480 fa->fsx_xflags &= ~FS_XFLAG_COWEXTSIZE; in xfs_fill_fsxattr()
481 fa->fsx_cowextsize = 0; in xfs_fill_fsxattr()
483 fa->fsx_cowextsize = XFS_FSB_TO_B(mp, ip->i_cowextsize); in xfs_fill_fsxattr()
487 fa->fsx_projid = ip->i_projid; in xfs_fill_fsxattr()
489 fa->fsx_nextents = xfs_iext_count(ifp); in xfs_fill_fsxattr()
491 fa->fsx_nextents = xfs_ifork_nextents(ifp); in xfs_fill_fsxattr()
516 return -ENOTTY; in xfs_fileattr_get()
531 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr_xflags()
532 bool rtflag = (fa->fsx_xflags & FS_XFLAG_REALTIME); in xfs_ioctl_setattr_xflags()
538 return -EINVAL; in xfs_ioctl_setattr_xflags()
546 (mp->m_ddev_targp->bt_daxdev == NULL || in xfs_ioctl_setattr_xflags()
547 (mp->m_rtdev_targp && in xfs_ioctl_setattr_xflags()
548 mp->m_rtdev_targp->bt_daxdev == NULL))) in xfs_ioctl_setattr_xflags()
549 return -EINVAL; in xfs_ioctl_setattr_xflags()
554 if (mp->m_sb.sb_rblocks == 0 || mp->m_sb.sb_rextsize == 0 || in xfs_ioctl_setattr_xflags()
555 xfs_extlen_to_rtxmod(mp, ip->i_extsize)) in xfs_ioctl_setattr_xflags()
556 return -EINVAL; in xfs_ioctl_setattr_xflags()
560 i_flags2 = xfs_flags2diflags2(ip, fa->fsx_xflags); in xfs_ioctl_setattr_xflags()
562 return -EINVAL; in xfs_ioctl_setattr_xflags()
564 ip->i_diflags = xfs_flags2diflags(ip, fa->fsx_xflags); in xfs_ioctl_setattr_xflags()
565 ip->i_diflags2 = i_flags2; in xfs_ioctl_setattr_xflags()
573 if (rtflag != XFS_IS_REALTIME_INODE(ip) && S_ISREG(VFS_I(ip)->i_mode)) in xfs_ioctl_setattr_xflags()
587 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr_prepare_dax()
590 if (S_ISDIR(inode->i_mode)) in xfs_ioctl_setattr_prepare_dax()
596 if (((fa->fsx_xflags & FS_XFLAG_DAX) && in xfs_ioctl_setattr_prepare_dax()
597 !(ip->i_diflags2 & XFS_DIFLAG2_DAX)) || in xfs_ioctl_setattr_prepare_dax()
598 (!(fa->fsx_xflags & FS_XFLAG_DAX) && in xfs_ioctl_setattr_prepare_dax()
599 (ip->i_diflags2 & XFS_DIFLAG2_DAX))) in xfs_ioctl_setattr_prepare_dax()
614 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr_get_trans()
616 int error = -EROFS; in xfs_ioctl_setattr_get_trans()
620 error = -EIO; in xfs_ioctl_setattr_get_trans()
647 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr_check_extsize()
651 if (!fa->fsx_valid) in xfs_ioctl_setattr_check_extsize()
654 if (S_ISREG(VFS_I(ip)->i_mode) && xfs_inode_has_filedata(ip) && in xfs_ioctl_setattr_check_extsize()
655 XFS_FSB_TO_B(mp, ip->i_extsize) != fa->fsx_extsize) in xfs_ioctl_setattr_check_extsize()
656 return -EINVAL; in xfs_ioctl_setattr_check_extsize()
658 if (fa->fsx_extsize & mp->m_blockmask) in xfs_ioctl_setattr_check_extsize()
659 return -EINVAL; in xfs_ioctl_setattr_check_extsize()
661 new_diflags = xfs_flags2diflags(ip, fa->fsx_xflags); in xfs_ioctl_setattr_check_extsize()
673 rtextsize_bytes = XFS_FSB_TO_B(mp, mp->m_sb.sb_rextsize); in xfs_ioctl_setattr_check_extsize()
674 if (fa->fsx_extsize % rtextsize_bytes) in xfs_ioctl_setattr_check_extsize()
675 return -EINVAL; in xfs_ioctl_setattr_check_extsize()
678 failaddr = xfs_inode_validate_extsize(ip->i_mount, in xfs_ioctl_setattr_check_extsize()
679 XFS_B_TO_FSB(mp, fa->fsx_extsize), in xfs_ioctl_setattr_check_extsize()
680 VFS_I(ip)->i_mode, new_diflags); in xfs_ioctl_setattr_check_extsize()
681 return failaddr != NULL ? -EINVAL : 0; in xfs_ioctl_setattr_check_extsize()
689 struct xfs_mount *mp = ip->i_mount; in xfs_ioctl_setattr_check_cowextsize()
694 if (!fa->fsx_valid) in xfs_ioctl_setattr_check_cowextsize()
697 if (fa->fsx_cowextsize & mp->m_blockmask) in xfs_ioctl_setattr_check_cowextsize()
698 return -EINVAL; in xfs_ioctl_setattr_check_cowextsize()
700 new_diflags = xfs_flags2diflags(ip, fa->fsx_xflags); in xfs_ioctl_setattr_check_cowextsize()
701 new_diflags2 = xfs_flags2diflags2(ip, fa->fsx_xflags); in xfs_ioctl_setattr_check_cowextsize()
703 failaddr = xfs_inode_validate_cowextsize(ip->i_mount, in xfs_ioctl_setattr_check_cowextsize()
704 XFS_B_TO_FSB(mp, fa->fsx_cowextsize), in xfs_ioctl_setattr_check_cowextsize()
705 VFS_I(ip)->i_mode, new_diflags, new_diflags2); in xfs_ioctl_setattr_check_cowextsize()
706 return failaddr != NULL ? -EINVAL : 0; in xfs_ioctl_setattr_check_cowextsize()
714 if (!fa->fsx_valid) in xfs_ioctl_setattr_check_projid()
718 if (fa->fsx_projid > (uint16_t)-1 && in xfs_ioctl_setattr_check_projid()
719 !xfs_has_projid32(ip->i_mount)) in xfs_ioctl_setattr_check_projid()
720 return -EINVAL; in xfs_ioctl_setattr_check_projid()
731 struct xfs_mount *mp = ip->i_mount; in xfs_fileattr_set()
740 return -ENOTTY; in xfs_fileattr_set()
742 if (!fa->fsx_valid) { in xfs_fileattr_set()
743 if (fa->flags & ~(FS_IMMUTABLE_FL | FS_APPEND_FL | in xfs_fileattr_set()
746 return -EOPNOTSUPP; in xfs_fileattr_set()
761 if (fa->fsx_valid && XFS_IS_QUOTA_ON(mp)) { in xfs_fileattr_set()
762 error = xfs_qm_vop_dqalloc(ip, VFS_I(ip)->i_uid, in xfs_fileattr_set()
763 VFS_I(ip)->i_gid, fa->fsx_projid, in xfs_fileattr_set()
789 if (!fa->fsx_valid) in xfs_fileattr_set()
795 * The set-user-ID and set-group-ID bits of a file will be cleared upon in xfs_fileattr_set()
799 if ((VFS_I(ip)->i_mode & (S_ISUID|S_ISGID)) && in xfs_fileattr_set()
801 VFS_I(ip)->i_mode &= ~(S_ISUID|S_ISGID); in xfs_fileattr_set()
804 if (ip->i_projid != fa->fsx_projid) { in xfs_fileattr_set()
807 &ip->i_pdquot, pdqp); in xfs_fileattr_set()
809 ip->i_projid = fa->fsx_projid; in xfs_fileattr_set()
817 if (ip->i_diflags & (XFS_DIFLAG_EXTSIZE | XFS_DIFLAG_EXTSZINHERIT)) in xfs_fileattr_set()
818 ip->i_extsize = XFS_B_TO_FSB(mp, fa->fsx_extsize); in xfs_fileattr_set()
820 ip->i_extsize = 0; in xfs_fileattr_set()
823 if (ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE) in xfs_fileattr_set()
824 ip->i_cowextsize = XFS_B_TO_FSB(mp, fa->fsx_cowextsize); in xfs_fileattr_set()
826 ip->i_cowextsize = 0; in xfs_fileattr_set()
853 if (put_user(p->bmv_offset, &u->bmv_offset) || in xfs_getbmap_format()
854 put_user(p->bmv_block, &u->bmv_block) || in xfs_getbmap_format()
855 put_user(p->bmv_length, &u->bmv_length) || in xfs_getbmap_format()
856 put_user(0, &u->bmv_count) || in xfs_getbmap_format()
857 put_user(0, &u->bmv_entries)) in xfs_getbmap_format()
861 if (put_user(0, &u->bmv_iflags) || in xfs_getbmap_format()
862 put_user(p->bmv_oflags, &u->bmv_oflags) || in xfs_getbmap_format()
863 put_user(0, &u->bmv_unused1) || in xfs_getbmap_format()
864 put_user(0, &u->bmv_unused2)) in xfs_getbmap_format()
892 return -EINVAL; in xfs_ioc_getbmap()
896 return -EFAULT; in xfs_ioc_getbmap()
899 return -EINVAL; in xfs_ioc_getbmap()
901 return -ENOMEM; in xfs_ioc_getbmap()
905 return -ENOMEM; in xfs_ioc_getbmap()
911 error = -EFAULT; in xfs_ioc_getbmap()
935 CLASS(fd, f)((int)sxp->sx_fdtarget); in xfs_ioc_swapext()
937 return -EINVAL; in xfs_ioc_swapext()
939 if (!(fd_file(f)->f_mode & FMODE_WRITE) || in xfs_ioc_swapext()
940 !(fd_file(f)->f_mode & FMODE_READ) || in xfs_ioc_swapext()
941 (fd_file(f)->f_flags & O_APPEND)) in xfs_ioc_swapext()
942 return -EBADF; in xfs_ioc_swapext()
944 CLASS(fd, tmp)((int)sxp->sx_fdtmp); in xfs_ioc_swapext()
946 return -EINVAL; in xfs_ioc_swapext()
948 if (!(fd_file(tmp)->f_mode & FMODE_WRITE) || in xfs_ioc_swapext()
949 !(fd_file(tmp)->f_mode & FMODE_READ) || in xfs_ioc_swapext()
950 (fd_file(tmp)->f_flags & O_APPEND)) in xfs_ioc_swapext()
951 return -EBADF; in xfs_ioc_swapext()
955 return -EINVAL; in xfs_ioc_swapext()
962 if (fd_file(f)->f_op != &xfs_file_operations || in xfs_ioc_swapext()
963 fd_file(tmp)->f_op != &xfs_file_operations) in xfs_ioc_swapext()
964 return -EINVAL; in xfs_ioc_swapext()
969 if (ip->i_mount != tip->i_mount) in xfs_ioc_swapext()
970 return -EINVAL; in xfs_ioc_swapext()
972 if (ip->i_ino == tip->i_ino) in xfs_ioc_swapext()
973 return -EINVAL; in xfs_ioc_swapext()
975 if (xfs_is_shutdown(ip->i_mount)) in xfs_ioc_swapext()
976 return -EIO; in xfs_ioc_swapext()
986 struct xfs_sb *sbp = &mp->m_sb; in xfs_ioc_getlabel()
990 BUILD_BUG_ON(sizeof(sbp->sb_fname) > FSLABEL_MAX); in xfs_ioc_getlabel()
994 spin_lock(&mp->m_sb_lock); in xfs_ioc_getlabel()
995 strncpy(label, sbp->sb_fname, XFSLABEL_MAX); in xfs_ioc_getlabel()
996 spin_unlock(&mp->m_sb_lock); in xfs_ioc_getlabel()
999 return -EFAULT; in xfs_ioc_getlabel()
1009 struct xfs_sb *sbp = &mp->m_sb; in xfs_ioc_setlabel()
1015 return -EPERM; in xfs_ioc_setlabel()
1023 return -EFAULT; in xfs_ioc_setlabel()
1025 if (len > sizeof(sbp->sb_fname)) in xfs_ioc_setlabel()
1026 return -EINVAL; in xfs_ioc_setlabel()
1032 spin_lock(&mp->m_sb_lock); in xfs_ioc_setlabel()
1033 memset(sbp->sb_fname, 0, sizeof(sbp->sb_fname)); in xfs_ioc_setlabel()
1034 memcpy(sbp->sb_fname, label, len); in xfs_ioc_setlabel()
1035 spin_unlock(&mp->m_sb_lock); in xfs_ioc_setlabel()
1043 * buffered reads from userspace (i.e. from blkid) are invalidated, in xfs_ioc_setlabel()
1044 * and userspace will see the newly-written label. in xfs_ioc_setlabel()
1052 mutex_lock(&mp->m_growlock); in xfs_ioc_setlabel()
1054 mutex_unlock(&mp->m_growlock); in xfs_ioc_setlabel()
1056 invalidate_bdev(mp->m_ddev_targp->bt_bdev); in xfs_ioc_setlabel()
1057 if (xfs_has_rtsb(mp) && mp->m_rtdev_targp) in xfs_ioc_setlabel()
1058 invalidate_bdev(mp->m_rtdev_targp->bt_bdev); in xfs_ioc_setlabel()
1070 if (src->eof_version != XFS_EOFBLOCKS_VERSION) in xfs_fs_eofblocks_from_user()
1071 return -EINVAL; in xfs_fs_eofblocks_from_user()
1073 if (src->eof_flags & ~XFS_EOF_FLAGS_VALID) in xfs_fs_eofblocks_from_user()
1074 return -EINVAL; in xfs_fs_eofblocks_from_user()
1076 if (memchr_inv(&src->pad32, 0, sizeof(src->pad32)) || in xfs_fs_eofblocks_from_user()
1077 memchr_inv(src->pad64, 0, sizeof(src->pad64))) in xfs_fs_eofblocks_from_user()
1078 return -EINVAL; in xfs_fs_eofblocks_from_user()
1080 dst->icw_flags = 0; in xfs_fs_eofblocks_from_user()
1081 if (src->eof_flags & XFS_EOF_FLAGS_SYNC) in xfs_fs_eofblocks_from_user()
1082 dst->icw_flags |= XFS_ICWALK_FLAG_SYNC; in xfs_fs_eofblocks_from_user()
1083 if (src->eof_flags & XFS_EOF_FLAGS_UID) in xfs_fs_eofblocks_from_user()
1084 dst->icw_flags |= XFS_ICWALK_FLAG_UID; in xfs_fs_eofblocks_from_user()
1085 if (src->eof_flags & XFS_EOF_FLAGS_GID) in xfs_fs_eofblocks_from_user()
1086 dst->icw_flags |= XFS_ICWALK_FLAG_GID; in xfs_fs_eofblocks_from_user()
1087 if (src->eof_flags & XFS_EOF_FLAGS_PRID) in xfs_fs_eofblocks_from_user()
1088 dst->icw_flags |= XFS_ICWALK_FLAG_PRID; in xfs_fs_eofblocks_from_user()
1089 if (src->eof_flags & XFS_EOF_FLAGS_MINFILESIZE) in xfs_fs_eofblocks_from_user()
1090 dst->icw_flags |= XFS_ICWALK_FLAG_MINFILESIZE; in xfs_fs_eofblocks_from_user()
1092 dst->icw_prid = src->eof_prid; in xfs_fs_eofblocks_from_user()
1093 dst->icw_min_file_size = src->eof_min_file_size; in xfs_fs_eofblocks_from_user()
1095 dst->icw_uid = INVALID_UID; in xfs_fs_eofblocks_from_user()
1096 if (src->eof_flags & XFS_EOF_FLAGS_UID) { in xfs_fs_eofblocks_from_user()
1097 dst->icw_uid = make_kuid(current_user_ns(), src->eof_uid); in xfs_fs_eofblocks_from_user()
1098 if (!uid_valid(dst->icw_uid)) in xfs_fs_eofblocks_from_user()
1099 return -EINVAL; in xfs_fs_eofblocks_from_user()
1102 dst->icw_gid = INVALID_GID; in xfs_fs_eofblocks_from_user()
1103 if (src->eof_flags & XFS_EOF_FLAGS_GID) { in xfs_fs_eofblocks_from_user()
1104 dst->icw_gid = make_kgid(current_user_ns(), src->eof_gid); in xfs_fs_eofblocks_from_user()
1105 if (!gid_valid(dst->icw_gid)) in xfs_fs_eofblocks_from_user()
1106 return -EINVAL; in xfs_fs_eofblocks_from_user()
1117 struct xfs_mount *mp = XFS_I(file_inode(filp))->i_mount; in xfs_ioctl_getset_resblocks()
1122 return -EPERM; in xfs_ioctl_getset_resblocks()
1126 return -EROFS; in xfs_ioctl_getset_resblocks()
1129 return -EFAULT; in xfs_ioctl_getset_resblocks()
1140 spin_lock(&mp->m_sb_lock); in xfs_ioctl_getset_resblocks()
1141 fsop.resblks = mp->m_resblks; in xfs_ioctl_getset_resblocks()
1142 fsop.resblks_avail = mp->m_resblks_avail; in xfs_ioctl_getset_resblocks()
1143 spin_unlock(&mp->m_sb_lock); in xfs_ioctl_getset_resblocks()
1146 return -EFAULT; in xfs_ioctl_getset_resblocks()
1156 .allocino = percpu_counter_read_positive(&mp->m_icount), in xfs_ioctl_fs_counts()
1157 .freeino = percpu_counter_read_positive(&mp->m_ifree), in xfs_ioctl_fs_counts()
1158 .freedata = percpu_counter_read_positive(&mp->m_fdblocks) - in xfs_ioctl_fs_counts()
1160 .freertx = percpu_counter_read_positive(&mp->m_frextents), in xfs_ioctl_fs_counts()
1164 return -EFAULT; in xfs_ioctl_fs_counts()
1169 * These long-unused ioctls were removed from the official ioctl API in 5.17,
1178 * Note: some of the ioctl's return positive numbers as a
1191 struct xfs_mount *mp = ip->i_mount; in xfs_file_ioctl()
1210 current->comm); in xfs_file_ioctl()
1211 return -ENOTTY; in xfs_file_ioctl()
1216 da.d_mem = target->bt_logical_sectorsize; in xfs_file_ioctl()
1225 da.d_miniosz = target->bt_logical_sectorsize; in xfs_file_ioctl()
1226 da.d_maxiosz = INT_MAX & ~(da.d_miniosz - 1); in xfs_file_ioctl()
1229 return -EFAULT; in xfs_file_ioctl()
1256 return put_user(inode->i_generation, (int __user *)arg); in xfs_file_ioctl()
1283 return -EFAULT; in xfs_file_ioctl()
1290 return -EFAULT; in xfs_file_ioctl()
1298 return -EFAULT; in xfs_file_ioctl()
1311 return -EFAULT; in xfs_file_ioctl()
1331 return -EFAULT; in xfs_file_ioctl()
1345 return -EFAULT; in xfs_file_ioctl()
1359 return -EFAULT; in xfs_file_ioctl()
1373 return -EPERM; in xfs_file_ioctl()
1376 return -EFAULT; in xfs_file_ioctl()
1385 return -EPERM; in xfs_file_ioctl()
1388 return -EFAULT; in xfs_file_ioctl()
1395 return -EPERM; in xfs_file_ioctl()
1404 return -EPERM; in xfs_file_ioctl()
1407 return -EROFS; in xfs_file_ioctl()
1410 return -EFAULT; in xfs_file_ioctl()
1418 sb_start_write(mp->m_super); in xfs_file_ioctl()
1420 sb_end_write(mp->m_super); in xfs_file_ioctl()
1432 return -ENOTTY; in xfs_file_ioctl()