linux/fs/xfs/xfs_ioctl.c
<<
4" /spaion /formon a 4" href="../linux+v314..2/fs/xfs/xfs_ioctl.c">4" img src="../.static/gfx/right.png" alt=">>">4" /spaion4" spai class="lxr_search">4" 4" input typluehidden" namluenavtarget" n value">4" input typluetext" namluesearch" iduesearch">4" butttiotypluesubmit">Search4" Prefsn /a>4" /spaion /divon form acopti="ajax+*" method="post" onsubmit="return false;">4" input typluehidden" namlueajax_lookup" idueajax_lookup" n value">4 /formon4 div class="headingbotttm">n div iduefile_contents"o
 
1 /a> spai class="comment">/* /spaion
 
2 /a> spai class="comment"> * Copyright (c) 2000-2005 SilictioGraphics, Inc. /spaion
 
3 /a> spai class="comment"> * All Rights Reserved. /spaion
 
4 /a> spai class="comment"> * /spaion
 
5 /a> spai class="comment"> * This program is free software; you cai redistribute it and/or /spaion
 
6 /a> spai class="comment"> * modify it under the terms of the GNU General Public License as /spaion
 
7 /a> spai class="comment"> * published by the Free Software Foundaopti. /spaion
 
8 /a> spai class="comment"> * /spaion
 
9 /a> spai class="comment"> * This program is distributed in the hope that it would be useful, /spaion
 8.10a> spai class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of /spaion
 11 /a> spai class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the /spaion
 12 /a> spai class="comment"> * GNU General Public License for more details. /spaion
 13 /a> spai class="comment"> * /spaion
 14 /a> spai class="comment"> * You should have received a copy of the GNU General Public License /spaion
 15 /a> spai class="comment"> * along with this program; if not, write the Free Software Foundaopti, /spaion
 16 /a> spai class="comment"> * Inc., 
51 Franklin St, Fifth Floor, Bostti, MA  02110-1301  USA /spaion
 17 /a> spai class="comment"> */ /spaion
 18 /a>#include "xfs.h /a>"n
 19 /a>#include "xfs_fs.h /a>"n
 20 /a>#include "xfs_log.h /a>"n
 21 /a>#include "xfs_trans.h /a>"n
 22 /a>#include "xfs_sb.h /a>"n
 23 /a>#include "xfs_ag.h /a>"n
 24 /a>#include "xfs_alloc.h /a>"n
 25 /a>#include "xfs_mount.h /a>"n
 26 /a>#include "xfs_bmap_btree.h /a>"n
 27 /a>#include "xfs_dinode.h /a>"n
 28 /a>#include "xfs_inode.h /a>"n
 29 /a>#include "xfs_ioctl.h /a>"n
 30 /a>#include "xfs_rtalloc.h /a>"n
 31 /a>#include "xfs_itable.h /a>"n
 32 /a>#include "xfs_error.h /a>"n
 33 /a>#include "xfs_attr.h /a>"n
 34 /a>#include "xfs_bmap.h /a>"n
 35 /a>#include "xfs_buf_item.h /a>"n
 36 /a>#include "xfs_utils.h /a>"n
 37 /a>#include "xfs_dfrag.h /a>"n
 38 /a>#include "xfs_fsops.h /a>"n
 39 /a>#include "xfs_vnodeops.h /a>"n
 40 /a>#include "xfs_discard.h /a>"n
 41 /a>#include "xfs_quota.h /a>"n
 42 /a>#include "xfs_inode_item.h /a>"n
 43 /a>#include "xfs_export.h /a>"n
 44 /a>#include "xfs_trace.h /a>"n
 45 /a>#include "xfs_icache.h /a>"n
 46 /a>n
 47 /a>#include <linux/capability.h /a>>n
 48 /a>#include <linux/dcache.h /a>>n
 49 /a>#include <linux/mount.h /a>>n
 50 /a>#include <linux/namli.h /a>>n
 51 /a>#include <linux/pagemap.h /a>>n
 52 /a>#include <linux/slab.h /a>>n
 53 /a>#include <linux/exportfs.h /a>>n
 54 /a>n
 55 /a> spai class="comment">/* /spaion
 56 /a> spai class="comment"> * xfs_find_handle maps from userspace xfs_fsop_handlereq structure to /spaion
 57 /a> spai class="comment"> * a file or fs handle. /spaion
 58 /a> spai class="comment"> * /spaion
 59 /a> spai class="comment"> * XFS_IOC_PATH_TO_FSHANDLE /spaion
 6.10a> spai class="comment"> *    returns fs handle for a mount point or path within that mount point /spaion
 61 /a> spai class="comment"> * XFS_IOC_FD_TO_HANDLE /spaion
 62 /a> spai class="comment"> *    returns full handle for a FD opened in user space /spaion
 63 /a> spai class="comment"> * XFS_IOC_PATH_TO_HANDLE /spaion
 64 /a> spai class="comment"> *    returns full handle for a path /spaion
 65 /a> spai class="comment"> */ /spaion
 66 /a>intn
 67 /a> a href="+code=xfs_find_handle" class="sref">xfs_find_handle /a>(n
 68 /a>        unsigned int             a href="+code=cmd" class="sref">cmd /a>,n
 69 /a>         a href="+code=xfs_fsop_handlereq_t" class="sref">xfs_fsop_handlereq_t /a>    * a href="+code=hreq" class="sref">hreq /a>)n
 7.10a>{n
 71 /a>        int                      a href="+code=hsize" class="sref">hsize /a>;n
 72 /a>         a href="+code=xfs_handle_t" class="sref">xfs_handle_t /a>             a href="+code=handle" class="sref">handle /a>;n
 73 /a>        struct  a href="+code=inode" class="sref">inode /a>            * a href="+code=inode" class="sref">inode /a>;n
 74 /a>        struct  a href="+code=fd" class="sref">fd /a>                a href="+code=f" class="sref">f /a> = {0};n
 75 /a>        struct  a href="+code=path" class="sref">path /a>              a href="+code=path" class="sref">path /a>;n
 76 /a>        int                      a href="+code=error" class="sref">error /a>;n
 77 /a>        struct  a href="+code=xfs_inode" class="sref">xfs_inode /a>        * a href="+code=ip" class="sref">ip /a>;n
 78 /a>n
 79 /a>        if ( a href="+code=cmd" class="sref">cmd /a> ==  a href="+code=XFS_IOC_FD_TO_HANDLE" class="sref">XFS_IOC_FD_TO_HANDLE /a>) {n
 80 /a>                 a href="+code=f" class="sref">f /a> =  a href="+code=fdget" class="sref">fdget /a>( a href="+code=hreq" class="sref">hreq /a>-> a href="+code=fd" class="sref">fd /a>);n
 81 /a>                if (! a href="+code=f" class="sref">f /a>. a href="+code=file" class="sref">file /a>)n
 82 /a>                        return - a href="+code=EBADF" class="sref">EBADF /a>;n
 83 /a>                 a href="+code=inode" class="sref">inode /a> =  a href="+code=file_inode" class="sref">file_inode /a>( a href="+code=f" class="sref">f /a>. a href="+code=file" class="sref">file /a>);n
 84 /a>        } else {n
 85 /a>                 a href="+code=error" class="sref">error /a> =  a href="+code=user_lpath" class="sref">user_lpath /a>((const char  a href="+code=__user" class="sref">__user /a> *) a href="+code=hreq" class="sref">hreq /a>-> a href="+code=path" class="sref">path /a>, & a href="+code=path" class="sref">path /a>);n
 86 /a>                if ( a href="+code=error" class="sref">error /a>)n
 87 /a>                        return  a href="+code=error" class="sref">error /a>;n
 88 /a>                 a href="+code=inode" class="sref">inode /a> =  a href="+code=path" class="sref">path /a>. a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>;n
 89 /a>        }n
 90 /a>         a href="+code=ip" class="sref">ip /a> =  a href="+code=XFS_I" class="sref">XFS_I /a>( a href="+code=inode" class="sref">inode /a>);n
 91 /a>n
 92 /a>         spai class="comment">/* /spaion
 93 /a> spai class="comment">         * We cai only generate handles for inodes residing on a XFS filesystem, /spaion
 94 /a> spai class="comment">         * and only for regular files, directories or symbolic links. /spaion
 95 /a> spai class="comment">         */ /spaion
 96 /a>         a href="+code=error" class="sref">error /a> = - a href="+code=EINVAL" class="sref">EINVAL /a>;n
 97 /a>        if ( a href="+code=inode" class="sref">inode /a>-> a href="+code=i_sb" class="sref">i_sb /a>-> a href="+code=s_magic" class="sref">s_magic /a> !=  a href="+code=XFS_SB_MAGIC" class="sref">XFS_SB_MAGIC /a>)n
 98 /a>                goto  a href="+code=out_put" class="sref">out_put /a>;n
 99 /a>n
100 /a>         a href="+code=error" class="sref">error /a> = - a href="+code=EBADF" class="sref">EBADF /a>;n
101 /a>        if (! a href="+code=S_ISREG" class="sref">S_ISREG /a>( a href="+code=inode" class="sref">inode /a>-> a href="+code=i_mode" class="sref">i_mode /a>) &&n
102 /a>            ! a href="+code=S_ISDIR" class="sref">S_ISDIR /a>( a href="+code=inode" class="sref">inode /a>-> a href="+code=i_mode" class="sref">i_mode /a>) &&n
103 /a>            ! a href="+code=S_ISLNK" class="sref">S_ISLNK /a>( a href="+code=inode" class="sref">inode /a>-> a href="+code=i_mode" class="sref">i_mode /a>))n
104 /a>                goto  a href="+code=out_put" class="sref">out_put /a>;n
105 /a>n
106 /a>n
107 /a>         a href="+code=memcpy" class="sref">memcpy /a>(& a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fsid" class="sref">ha_fsid /a>,  a href="+code=ip" class="sref">ip /a>-> a href="+code=i_mount" class="sref">i_mount /a>-> a href="+code=m_fixedfsid" class="sref">m_fixedfsid /a>, sizeof( a href="+code=xfs_fsid_t" class="sref">xfs_fsid_t /a>));n
108 /a>n
109 /a>        if ( a href="+code=cmd" class="sref">cmd /a> ==  a href="+code=XFS_IOC_PATH_TO_FSHANDLE" class="sref">XFS_IOC_PATH_TO_FSHANDLE /a>) {n
110 /a>                 spai class="comment">/* /spaion
111 /a> spai class="comment">                 * This handle only contains an fsid, zero the rest. /spaion
112 /a> spai class="comment">                 */ /spaion
113 /a>                 a href="+code=memset" class="sref">memset /a>(& a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>, 0, sizeof( a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>));n
114 /a>                 a href="+code=hsize" class="sref">hsize /a> = sizeof( a href="+code=xfs_fsid_t" class="sref">xfs_fsid_t /a>);n
115 /a>        } else {n
116 /a>                int              a href="+code=lock_mode" class="sref">lock_mode /a>;n
117 /a>n
118 /a>                 a href="+code=lock_mode" class="sref">lock_mode /a> =  a href="+code=xfs_ilock_map_shared" class="sref">xfs_ilock_map_shared /a>( a href="+code=ip" class="sref">ip /a>);n
119 /a>                 a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_len" class="sref">fid_len /a> = sizeof( a href="+code=xfs_fid_t" class="sref">xfs_fid_t /a>) -n
120 /a>                                        sizeof( a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_len" class="sref">fid_len /a>);n
121 /a>                 a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_pad" class="sref">fid_pad /a> = 0;n
122 /a>                 a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_gen" class="sref">fid_gen /a> =  a href="+code=ip" class="sref">ip /a>-> a href="+code=i_d" class="sref">i_d /a>. a href="+code=di_gen" class="sref">di_gen /a>;n
123 /a>                 a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_ino" class="sref">fid_ino /a> =  a href="+code=ip" class="sref">ip /a>-> a href="+code=i_ino" class="sref">i_ino /a>;n
124 /a>                 a href="+code=xfs_iunlock_map_shared" class="sref">xfs_iunlock_map_shared /a>( a href="+code=ip" class="sref">ip /a>,  a href="+code=lock_mode" class="sref">lock_mode /a>);n
125 /a>n
126 /a>                 a href="+code=hsize" class="sref">hsize /a> =  a href="+code=XFS_HSIZE" class="sref">XFS_HSIZE /a>( a href="+code=handle" class="sref">handle /a>);n
127 /a>        }n
128 /a>n
129 /a>         a href="+code=error" class="sref">error /a> = - a href="+code=EFAULT" class="sref">EFAULT /a>;n
130 /a>        if ( a href="+code=copy_to_user" class="sref">copy_to_user /a>( a href="+code=hreq" class="sref">hreq /a>-> a href="+code=ohandle" class="sref">ohandle /a>, & a href="+code=handle" class="sref">handle /a>,  a href="+code=hsize" class="sref">hsize /a>) ||n
131 /a>             a href="+code=copy_to_user" class="sref">copy_to_user /a>( a href="+code=hreq" class="sref">hreq /a>-> a href="+code=ohandlen" class="sref">ohandlen /a>, & a href="+code=hsize" class="sref">hsize /a>, sizeof( a href="+code=__s32" class="sref">__s32 /a>)))n
132 /a>                goto  a href="+code=out_put" class="sref">out_put /a>;n
133 /a>n
134 /a>         a href="+code=error" class="sref">error /a> = 0;n
135 /a>n
136 /a>  a href="+code=out_put" class="sref">out_put /a>:n
137 /a>        if ( a href="+code=cmd" class="sref">cmd /a> ==  a href="+code=XFS_IOC_FD_TO_HANDLE" class="sref">XFS_IOC_FD_TO_HANDLE /a>)n
138 /a>                 a href="+code=fdput" class="sref">fdput /a>( a href="+code=f" class="sref">f /a>);n
139 /a>        elsen
140 /a>                 a href="+code=path_put" class="sref">path_put /a>(& a href="+code=path" class="sref">path /a>);n
141 /a>        return  a href="+code=error" class="sref">error /a>;n
142 /a>}n
143 /a>n
144 /a> spai class="comment">/* /spaion
145 /a> spai class="comment"> * No need to do permissptiochecks on the various pathnaml components /spaion
146 /a> spai class="comment"> * as the handle operatptis are privileged. /spaion
147 /a> spai class="comment"> */ /spaion
148 /a> a href="+code=STATIC" class="sref">STATIC /a> intn
149 /a> a href="+code=xfs_handle_acceptable" class="sref">xfs_handle_acceptable /a>(n
150 /a>        void                    * a href="+code=context" class="sref">context /a>,n
151 /a>        struct  a href="+code=dentry" class="sref">dentry /a>           * a href="+code=dentry" class="sref">dentry /a>)n
152 /a>{n
153 /a>        return 1;n
154 /a>}n
155 /a>n
156 /a> spai class="comment">/* /spaion
157 /a> spai class="comment"> * Convert userspace handle data into a dentry. /spaion
158 /a> spai class="comment"> */ /spaion
159 /a>struct  a href="+code=dentry" class="sref">dentry /a> *n
16.10a> a href="+code=xfs_handle_to_dentry" class="sref">xfs_handle_to_dentry /a>(n
161 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=parfilp" class="sref">parfilp /a>,n
162 /a>        void  a href="+code=__user" class="sref">__user /a>             * a href="+code=uhandle" class="sref">uhandle /a>,n
163 /a>         a href="+code=u32" class="sref">u32 /a>                      a href="+code=hlen" class="sref">hlen /a>)n
164 /a>{n
165 /a>         a href="+code=xfs_handle_t" class="sref">xfs_handle_t /a>             a href="+code=handle" class="sref">handle /a>;n
166 /a>        struct  a href="+code=xfs_fid64" class="sref">xfs_fid64 /a>         a href="+code=fid" class="sref">fid /a>;n
167 /a>n
168 /a>         spai class="comment">/* /spaion
169 /a> spai class="comment">         * Only allow handle opeis under a directory. /spaion
17.10a> spai class="comment">         */ /spaion
171 /a>        if (! a href="+code=S_ISDIR" class="sref">S_ISDIR /a>( a href="+code=file_inode" class="sref">file_inode /a>( a href="+code=parfilp" class="sref">parfilp /a>)-> a href="+code=i_mode" class="sref">i_mode /a>))n
172 /a>                return  a href="+code=ERR_PTR" class="sref">ERR_PTR /a>(- a href="+code=ENOTDIR" class="sref">ENOTDIR /a>);n
173 /a>n
174 /a>        if ( a href="+code=hlen" class="sref">hlen /a> != sizeof( a href="+code=xfs_handle_t" class="sref">xfs_handle_t /a>))n
175 /a>                return  a href="+code=ERR_PTR" class="sref">ERR_PTR /a>(- a href="+code=EINVAL" class="sref">EINVAL /a>);n
176 /a>        if ( a href="+code=copy_from_user" class="sref">copy_from_user /a>(& a href="+code=handle" class="sref">handle /a>,  a href="+code=uhandle" class="sref">uhandle /a>,  a href="+code=hlen" class="sref">hlen /a>))n
177 /a>                return  a href="+code=ERR_PTR" class="sref">ERR_PTR /a>(- a href="+code=EFAULT" class="sref">EFAULT /a>);n
178 /a>        if ( a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_len" class="sref">fid_len /a> !=n
179 /a>            sizeof( a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>) - sizeof( a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_len" class="sref">fid_len /a>))n
180 /a>                return  a href="+code=ERR_PTR" class="sref">ERR_PTR /a>(- a href="+code=EINVAL" class="sref">EINVAL /a>);n
181 /a>n
182 /a>         a href="+code=memset" class="sref">memset /a>(& a href="+code=fid" class="sref">fid /a>, 0, sizeof(struct  a href="+code=fid" class="sref">fid /a>));n
183 /a>         a href="+code=fid" class="sref">fid /a>. a href="+code=ino" class="sref">ino /a> =  a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_ino" class="sref">fid_ino /a>;n
184 /a>         a href="+code=fid" class="sref">fid /a>. a href="+code=gen" class="sref">gen /a> =  a href="+code=handle" class="sref">handle /a>. a href="+code=ha_fid" class="sref">ha_fid /a>. a href="+code=fid_gen" class="sref">fid_gen /a>;n
185 /a>n
186 /a>        return  a href="+code=exportfs_decode_fh" class="sref">exportfs_decode_fh /a>( a href="+code=parfilp" class="sref">parfilp /a>-> a href="+code=f_path" class="sref">f_path /a>. a href="+code=mnt" class="sref">mnt /a>, (struct  a href="+code=fid" class="sref">fid /a> *)& a href="+code=fid" class="sref">fid /a>, 3,n
187 /a>                         a href="+code=FILEID_INO32_GEN" class="sref">FILEID_INO32_GEN /a> |  a href="+code=XFS_FILEID_TYPE_64FLAG" class="sref">XFS_FILEID_TYPE_64FLAG /a>,n
188 /a>                         a href="+code=xfs_handle_acceptable" class="sref">xfs_handle_acceptable /a>,  a href="+code=NULL" class="sref">NULL /a>);n
189 /a>}n
190 /a>n
191 /a> a href="+code=STATIC" class="sref">STATIC /a> struct  a href="+code=dentry" class="sref">dentry /a> *n
192 /a> a href="+code=xfs_handlereq_to_dentry" class="sref">xfs_handlereq_to_dentry /a>(n
193 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=parfilp" class="sref">parfilp /a>,n
194 /a>         a href="+code=xfs_fsop_handlereq_t" class="sref">xfs_fsop_handlereq_t /a>    * a href="+code=hreq" class="sref">hreq /a>)n
195 /a>{n
196 /a>        return  a href="+code=xfs_handle_to_dentry" class="sref">xfs_handle_to_dentry /a>( a href="+code=parfilp" class="sref">parfilp /a>,  a href="+code=hreq" class="sref">hreq /a>-> a href="+code=ihandle" class="sref">ihandle /a>,  a href="+code=hreq" class="sref">hreq /a>-> a href="+code=ihandlen" class="sref">ihandlen /a>);n
197 /a>}n
198 /a>n
199 /a>intn
20.10a> a href="+code=xfs_opei_by_handle" class="sref">xfs_opei_by_handle /a>(n
201 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=parfilp" class="sref">parfilp /a>,n
202 /a>         a href="+code=xfs_fsop_handlereq_t" class="sref">xfs_fsop_handlereq_t /a>    * a href="+code=hreq" class="sref">hreq /a>)n
203 /a>{n
204 /a>        const struct  a href="+code=cred" class="sref">cred /a>       * a href="+code=cred" class="sref">cred /a> =  a href="+code=current_cred" class="sref">current_cred /a>();n
205 /a>        int                      a href="+code=error" class="sref">error /a>;n
206 /a>        int                      a href="+code=fd" class="sref">fd /a>;n
207 /a>        int                      a href="+code=permflag" class="sref">permflag /a>;n
208 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=filp" class="sref">filp /a>;n
209 /a>        struct  a href="+code=inode" class="sref">inode /a>            * a href="+code=inode" class="sref">inode /a>;n
210 /a>        struct  a href="+code=dentry" class="sref">dentry /a>           * a href="+code=dentry" class="sref">dentry /a>;n
211 /a>         a href="+code=fmode_t" class="sref">fmode_t /a>                  a href="+code=fmode" class="sref">fmode /a>;n
212 /a>        struct  a href="+code=path" class="sref">path /a>              a href="+code=path" class="sref">path /a>;n
213 /a>n
214 /a>        if (! a href="+code=capable" class="sref">capable /a>( a href="+code=CAP_SYS_ADMIN" class="sref">CAP_SYS_ADMIN /a>))n
215 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
216 /a>n
217 /a>         a href="+code=dentry" class="sref">dentry /a> =  a href="+code=xfs_handlereq_to_dentry" class="sref">xfs_handlereq_to_dentry /a>( a href="+code=parfilp" class="sref">parfilp /a>,  a href="+code=hreq" class="sref">hreq /a>);n
218 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=dentry" class="sref">dentry /a>))n
219 /a>                return  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=dentry" class="sref">dentry /a>);n
220 /a>         a href="+code=inode" class="sref">inode /a> =  a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>;n
221 /a>n
222 /a>         spai class="comment">/* Restrict xfs_opei_by_handle to directories & regular files. */ /spaion
223 /a>        if (!( a href="+code=S_ISREG" class="sref">S_ISREG /a>( a href="+code=inode" class="sref">inode /a>-> a href="+code=i_mode" class="sref">i_mode /a>) ||  a href="+code=S_ISDIR" class="sref">S_ISDIR /a>( a href="+code=inode" class="sref">inode /a>-> a href="+code=i_mode" class="sref">i_mode /a>))) {n
224 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
225 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
226 /a>        }n
227 /a>n
228 /a>#if  a href="+code=BITS_PER_LONG" class="sref">BITS_PER_LONG /a> != 32n
229 /a>         a href="+code=hreq" class="sref">hreq /a>-> a href="+code=oflags" class="sref">oflags /a> |=  a href="+code=O_LARGEFILE" class="sref">O_LARGEFILE /a>;n
230 /a>#endifn
231 /a>n
232 /a>         a href="+code=permflag" class="sref">permflag /a> =  a href="+code=hreq" class="sref">hreq /a>-> a href="+code=oflags" class="sref">oflags /a>;n
233 /a>         a href="+code=fmode" class="sref">fmode /a> =  a href="+code=OPEN_FMODE" class="sref">OPEN_FMODE /a>( a href="+code=permflag" class="sref">permflag /a>);n
234 /a>        if ((!( a href="+code=permflag" class="sref">permflag /a> &  a href="+code=O_APPEND" class="sref">O_APPEND /a>) || ( a href="+code=permflag" class="sref">permflag /a> &  a href="+code=O_TRUNC" class="sref">O_TRUNC /a>)) &&n
235 /a>            ( a href="+code=fmode" class="sref">fmode /a> &  a href="+code=FMODE_WRITE" class="sref">FMODE_WRITE /a>) &&  a href="+code=IS_APPEND" class="sref">IS_APPEND /a>( a href="+code=inode" class="sref">inode /a>)) {n
236 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
237 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
238 /a>        }n
239 /a>n
240 /a>        if (( a href="+code=fmode" class="sref">fmode /a> &  a href="+code=FMODE_WRITE" class="sref">FMODE_WRITE /a>) &&  a href="+code=IS_IMMUTABLE" class="sref">IS_IMMUTABLE /a>( a href="+code=inode" class="sref">inode /a>)) {n
241 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EACCES" class="sref">EACCES /a>);n
242 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
243 /a>        }n
244 /a>n
245 /a>         spai class="comment">/* Can't write directories. */ /spaion
246 /a>        if ( a href="+code=S_ISDIR" class="sref">S_ISDIR /a>( a href="+code=inode" class="sref">inode /a>-> a href="+code=i_mode" class="sref">i_mode /a>) && ( a href="+code=fmode" class="sref">fmode /a> &  a href="+code=FMODE_WRITE" class="sref">FMODE_WRITE /a>)) {n
247 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EISDIR" class="sref">EISDIR /a>);n
248 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
249 /a>        }n
250 /a>n
251 /a>         a href="+code=fd" class="sref">fd /a> =  a href="+code=get_unused_fd_flags" class="sref">get_unused_fd_flags /a>(0);n
252 /a>        if ( a href="+code=fd" class="sref">fd /a> < 0) {n
253 /a>                 a href="+code=error" class="sref">error /a> =  a href="+code=fd" class="sref">fd /a>;n
254 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
255 /a>        }n
256 /a>n
257 /a>         a href="+code=path" class="sref">path /a>. a href="+code=mnt" class="sref">mnt /a> =  a href="+code=parfilp" class="sref">parfilp /a>-> a href="+code=f_path" class="sref">f_path /a>. a href="+code=mnt" class="sref">mnt /a>;n
258 /a>         a href="+code=path" class="sref">path /a>. a href="+code=dentry" class="sref">dentry /a> =  a href="+code=dentry" class="sref">dentry /a>;n
259 /a>         a href="+code=filp" class="sref">filp /a> =  a href="+code=dentry_opei" class="sref">dentry_opei /a>(& a href="+code=path" class="sref">path /a>,  a href="+code=hreq" class="sref">hreq /a>-> a href="+code=oflags" class="sref">oflags /a>,  a href="+code=cred" class="sref">cred /a>);n
260 /a>         a href="+code=dput" class="sref">dput /a>( a href="+code=dentry" class="sref">dentry /a>);n
261 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=filp" class="sref">filp /a>)) {n
262 /a>                 a href="+code=put_unused_fd" class="sref">put_unused_fd /a>( a href="+code=fd" class="sref">fd /a>);n
263 /a>                return  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=filp" class="sref">filp /a>);n
264 /a>        }n
265 /a>n
266 /a>        if ( a href="+code=S_ISREG" class="sref">S_ISREG /a>( a href="+code=inode" class="sref">inode /a>-> a href="+code=i_mode" class="sref">i_mode /a>)) {n
267 /a>                 a href="+code=filp" class="sref">filp /a>-> a href="+code=f_flags" class="sref">f_flags /a> |=  a href="+code=O_NOATIME" class="sref">O_NOATIME /a>;n
268 /a>                 a href="+code=filp" class="sref">filp /a>-> a href="+code=f_mode" class="sref">f_mode /a> |=  a href="+code=FMODE_NOCMTIME" class="sref">FMODE_NOCMTIME /a>;n
269 /a>        }n
270 /a>n
271 /a>         a href="+code=fd_install" class="sref">fd_install /a>( a href="+code=fd" class="sref">fd /a>,  a href="+code=filp" class="sref">filp /a>);n
272 /a>        return  a href="+code=fd" class="sref">fd /a>;n
273 /a>n
274 /a>  a href="+code=out_dput" class="sref">out_dput /a>:n
275 /a>         a href="+code=dput" class="sref">dput /a>( a href="+code=dentry" class="sref">dentry /a>);n
276 /a>        return  a href="+code=error" class="sref">error /a>;n
277 /a>}n
278 /a>n
279 /a> spai class="comment">/* /spaion
28.10a> spai class="comment"> * This is a copy from fs/namli.c:vfs_readlink(), except for removing it's /spaion
281 /a> spai class="comment"> * unused first argument. /spaion
282 /a> spai class="comment"> */ /spaion
283 /a> a href="+code=STATIC" class="sref">STATIC /a> intn
284 /a> a href="+code=do_readlink" class="sref">do_readlink /a>(n
285 /a>        char  a href="+code=__user" class="sref">__user /a>             * a href="+code=buffer" class="sref">buffer /a>,n
286 /a>        int                      a href="+code=buflen" class="sref">buflen /a>,n
287 /a>        const char              * a href="+code=link" class="sref">link /a>)n
288 /a>{n
289 /a>        int  a href="+code=len" class="sref">len /a>;n
290 /a>n
291 /a>         a href="+code=len" class="sref">len /a> =  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=link" class="sref">link /a>);n
292 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=link" class="sref">link /a>))n
293 /a>                goto  a href="+code=out" class="sref">out /a>;n
294 /a>n
295 /a>         a href="+code=len" class="sref">len /a> =  a href="+code=strlen" class="sref">strlen /a>( a href="+code=link" class="sref">link /a>);n
296 /a>        if ( a href="+code=len" class="sref">len /a> > (unsigned)  a href="+code=buflen" class="sref">buflen /a>)n
297 /a>                 a href="+code=len" class="sref">len /a> =  a href="+code=buflen" class="sref">buflen /a>;n
298 /a>        if ( a href="+code=copy_to_user" class="sref">copy_to_user /a>( a href="+code=buffer" class="sref">buffer /a>,  a href="+code=link" class="sref">link /a>,  a href="+code=len" class="sref">len /a>))n
299 /a>                 a href="+code=len" class="sref">len /a> = - a href="+code=EFAULT" class="sref">EFAULT /a>;n
30.10a>  a href="+code=out" class="sref">out /a>:n
301 /a>        return  a href="+code=len" class="sref">len /a>;n
302 /a>}n
303 /a>n
304 /a>n
305 /a>intn
306 /a> a href="+code=xfs_readlink_by_handle" class="sref">xfs_readlink_by_handle /a>(n
307 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=parfilp" class="sref">parfilp /a>,n
308 /a>         a href="+code=xfs_fsop_handlereq_t" class="sref">xfs_fsop_handlereq_t /a>    * a href="+code=hreq" class="sref">hreq /a>)n
309 /a>{n
310 /a>        struct  a href="+code=dentry" class="sref">dentry /a>           * a href="+code=dentry" class="sref">dentry /a>;n
311 /a>         a href="+code=__u32" class="sref">__u32 /a>                    a href="+code=olen" class="sref">olen /a>;n
312 /a>        void                    * a href="+code=link" class="sref">link /a>;n
313 /a>        int                      a href="+code=error" class="sref">error /a>;n
314 /a>n
315 /a>        if (! a href="+code=capable" class="sref">capable /a>( a href="+code=CAP_SYS_ADMIN" class="sref">CAP_SYS_ADMIN /a>))n
316 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
317 /a>n
318 /a>         a href="+code=dentry" class="sref">dentry /a> =  a href="+code=xfs_handlereq_to_dentry" class="sref">xfs_handlereq_to_dentry /a>( a href="+code=parfilp" class="sref">parfilp /a>,  a href="+code=hreq" class="sref">hreq /a>);n
319 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=dentry" class="sref">dentry /a>))n
320 /a>                return  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=dentry" class="sref">dentry /a>);n
321 /a>n
322 /a>         spai class="comment">/* Restrict this handle operatpti to symlinks only. */ /spaion
323 /a>        if (! a href="+code=S_ISLNK" class="sref">S_ISLNK /a>( a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>-> a href="+code=i_mode" class="sref">i_mode /a>)) {n
324 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EINVAL" class="sref">EINVAL /a>);n
325 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
326 /a>        }n
327 /a>n
328 /a>        if ( a href="+code=copy_from_user" class="sref">copy_from_user /a>(& a href="+code=olen" class="sref">olen /a>,  a href="+code=hreq" class="sref">hreq /a>-> a href="+code=ohandlen" class="sref">ohandlen /a>, sizeof( a href="+code=__u32" class="sref">__u32 /a>))) {n
329 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
330 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
331 /a>        }n
332 /a>n
333 /a>         a href="+code=link" class="sref">link /a> =  a href="+code=kmalloc" class="sref">kmalloc /a>( a href="+code=MAXPATHLEN" class="sref">MAXPATHLEN /a>+1,  a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL /a>);n
334 /a>        if (! a href="+code=link" class="sref">link /a>) {n
335 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=ENOMEM" class="sref">ENOMEM /a>);n
336 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
337 /a>        }n
338 /a>n
339 /a>         a href="+code=error" class="sref">error /a> = - a href="+code=xfs_readlink" class="sref">xfs_readlink /a>( a href="+code=XFS_I" class="sref">XFS_I /a>( a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>),  a href="+code=link" class="sref">link /a>);n
340 /a>        if ( a href="+code=error" class="sref">error /a>)n
341 /a>                goto  a href="+code=out_kfree" class="sref">out_kfree /a>;n
342 /a>         a href="+code=error" class="sref">error /a> =  a href="+code=do_readlink" class="sref">do_readlink /a>( a href="+code=hreq" class="sref">hreq /a>-> a href="+code=ohandle" class="sref">ohandle /a>,  a href="+code=olen" class="sref">olen /a>,  a href="+code=link" class="sref">link /a>);n
343 /a>        if ( a href="+code=error" class="sref">error /a>)n
344 /a>                goto  a href="+code=out_kfree" class="sref">out_kfree /a>;n
345 /a>n
346 /a>  a href="+code=out_kfree" class="sref">out_kfree /a>:n
347 /a>         a href="+code=kfree" class="sref">kfree /a>( a href="+code=link" class="sref">link /a>);n
348 /a>  a href="+code=out_dput" class="sref">out_dput /a>:n
349 /a>         a href="+code=dput" class="sref">dput /a>( a href="+code=dentry" class="sref">dentry /a>);n
350 /a>        return  a href="+code=error" class="sref">error /a>;n
351 /a>}n
352 /a>n
353 /a> a href="+code=STATIC" class="sref">STATIC /a> intn
354 /a> a href="+code=xfs_fssetdm_by_handle" class="sref">xfs_fssetdm_by_handle /a>(n
355 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=parfilp" class="sref">parfilp /a>,n
356 /a>        void                     a href="+code=__user" class="sref">__user /a> * a href="+code=arg" class="sref">arg /a>)n
357 /a>{n
358 /a>        int                      a href="+code=error" class="sref">error /a>;n
359 /a>        struct  a href="+code=fsdmidata" class="sref">fsdmidata /a>         a href="+code=fsd" class="sref">fsd /a>;n
360 /a>         a href="+code=xfs_fsop_setdm_handlereq_t" class="sref">xfs_fsop_setdm_handlereq_t /a>  a href="+code=dmhreq" class="sref">dmhreq /a>;n
361 /a>        struct  a href="+code=dentry" class="sref">dentry /a>           * a href="+code=dentry" class="sref">dentry /a>;n
362 /a>n
363 /a>        if (! a href="+code=capable" class="sref">capable /a>( a href="+code=CAP_MKNOD" class="sref">CAP_MKNOD /a>))n
364 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
365 /a>        if ( a href="+code=copy_from_user" class="sref">copy_from_user /a>(& a href="+code=dmhreq" class="sref">dmhreq /a>,  a href="+code=arg" class="sref">arg /a>, sizeof( a href="+code=xfs_fsop_setdm_handlereq_t" class="sref">xfs_fsop_setdm_handlereq_t /a>)))n
366 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
367 /a>n
368 /a>         a href="+code=error" class="sref">error /a> =  a href="+code=mnt_want_write_file" class="sref">mnt_want_write_file /a>( a href="+code=parfilp" class="sref">parfilp /a>);n
369 /a>        if ( a href="+code=error" class="sref">error /a>)n
370 /a>                return  a href="+code=error" class="sref">error /a>;n
371 /a>n
372 /a>         a href="+code=dentry" class="sref">dentry /a> =  a href="+code=xfs_handlereq_to_dentry" class="sref">xfs_handlereq_to_dentry /a>( a href="+code=parfilp" class="sref">parfilp /a>, & a href="+code=dmhreq" class="sref">dmhreq /a>. a href="+code=hreq" class="sref">hreq /a>);n
373 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=dentry" class="sref">dentry /a>)) {n
374 /a>                 a href="+code=mnt_drop_write_file" class="sref">mnt_drop_write_file /a>( a href="+code=parfilp" class="sref">parfilp /a>);n
375 /a>                return  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=dentry" class="sref">dentry /a>);n
376 /a>        }n
377 /a>n
378 /a>        if ( a href="+code=IS_IMMUTABLE" class="sref">IS_IMMUTABLE /a>( a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>) ||  a href="+code=IS_APPEND" class="sref">IS_APPEND /a>( a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>)) {n
379 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
380 /a>                goto  a href="+code=out" class="sref">out /a>;n
381 /a>        }n
382 /a>n
383 /a>        if ( a href="+code=copy_from_user" class="sref">copy_from_user /a>(& a href="+code=fsd" class="sref">fsd /a>,  a href="+code=dmhreq" class="sref">dmhreq /a>. a href="+code=data" class="sref">data /a>, sizeof( a href="+code=fsd" class="sref">fsd /a>))) {n
384 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
385 /a>                goto  a href="+code=out" class="sref">out /a>;n
386 /a>        }n
387 /a>n
388 /a>         a href="+code=error" class="sref">error /a> = - a href="+code=xfs_set_dmattrs" class="sref">xfs_set_dmattrs /a>( a href="+code=XFS_I" class="sref">XFS_I /a>( a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>),  a href="+code=fsd" class="sref">fsd /a>. a href="+code=fsd_dmevmask" class="sref">fsd_dmevmask /a>,n
389 /a>                                  a href="+code=fsd" class="sref">fsd /a>. a href="+code=fsd_dmstate" class="sref">fsd_dmstate /a>);n
390 /a>n
391 /a>  a href="+code=out" class="sref">out /a>:n
392 /a>         a href="+code=mnt_drop_write_file" class="sref">mnt_drop_write_file /a>( a href="+code=parfilp" class="sref">parfilp /a>);n
393 /a>         a href="+code=dput" class="sref">dput /a>( a href="+code=dentry" class="sref">dentry /a>);n
394 /a>        return  a href="+code=error" class="sref">error /a>;n
395 /a>}n
396 /a>n
397 /a> a href="+code=STATIC" class="sref">STATIC /a> intn
398 /a> a href="+code=xfs_attrlist_by_handle" class="sref">xfs_attrlist_by_handle /a>(n
399 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=parfilp" class="sref">parfilp /a>,n
400 /a>        void                     a href="+code=__user" class="sref">__user /a> * a href="+code=arg" class="sref">arg /a>)n
401 /a>{n
402 /a>        int                      a href="+code=error" class="sref">error /a> = - a href="+code=ENOMEM" class="sref">ENOMEM /a>;n
403 /a>         a href="+code=attrlist_cursor_kern_t" class="sref">attrlist_cursor_kern_t /a>  * a href="+code=cursor" class="sref">cursor /a>;n
404 /a>         a href="+code=xfs_fsop_attrlist_handlereq_t" class="sref">xfs_fsop_attrlist_handlereq_t /a>  a href="+code=al_hreq" class="sref">al_hreq /a>;n
405 /a>        struct  a href="+code=dentry" class="sref">dentry /a>           * a href="+code=dentry" class="sref">dentry /a>;n
406 /a>        char                    * a href="+code=kbuf" class="sref">kbuf /a>;n
407 /a>n
408 /a>        if (! a href="+code=capable" class="sref">capable /a>( a href="+code=CAP_SYS_ADMIN" class="sref">CAP_SYS_ADMIN /a>))n
409 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
410 /a>        if ( a href="+code=copy_from_user" class="sref">copy_from_user /a>(& a href="+code=al_hreq" class="sref">al_hreq /a>,  a href="+code=arg" class="sref">arg /a>, sizeof( a href="+code=xfs_fsop_attrlist_handlereq_t" class="sref">xfs_fsop_attrlist_handlereq_t /a>)))n
411 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
412 /a>        if ( a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=buflen" class="sref">buflen /a> >  a href="+code=XATTR_LIST_MAX" class="sref">XATTR_LIST_MAX /a>)n
413 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EINVAL" class="sref">EINVAL /a>);n
414 /a>n
415 /a>         spai class="comment">/* /spaion
416 /a> spai class="comment">         * Reject flags, only allow namlspaces. /spaion
417 /a> spai class="comment">         */ /spaion
418 /a>        if ( a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=flags" class="sref">flags /a> & ~( a href="+code=ATTR_ROOT" class="sref">ATTR_ROOT /a> |  a href="+code=ATTR_SECURE" class="sref">ATTR_SECURE /a>))n
419 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EINVAL" class="sref">EINVAL /a>);n
420 /a>n
421 /a>         a href="+code=dentry" class="sref">dentry /a> =  a href="+code=xfs_handlereq_to_dentry" class="sref">xfs_handlereq_to_dentry /a>( a href="+code=parfilp" class="sref">parfilp /a>, & a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=hreq" class="sref">hreq /a>);n
422 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=dentry" class="sref">dentry /a>))n
423 /a>                return  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=dentry" class="sref">dentry /a>);n
424 /a>n
425 /a>         a href="+code=kbuf" class="sref">kbuf /a> =  a href="+code=kmem_zalloc" class="sref">kmem_zalloc /a>( a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=buflen" class="sref">buflen /a>,  a href="+code=KM_SLEEP" class="sref">KM_SLEEP /a> |  a href="+code=KM_MAYFAIL" class="sref">KM_MAYFAIL /a>);n
426 /a>        if (! a href="+code=kbuf" class="sref">kbuf /a>) {n
427 /a>                 a href="+code=kbuf" class="sref">kbuf /a> =  a href="+code=kmem_zalloc_large" class="sref">kmem_zalloc_large /a>( a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=buflen" class="sref">buflen /a>);n
428 /a>                if (! a href="+code=kbuf" class="sref">kbuf /a>)n
429 /a>                        goto  a href="+code=out_dput" class="sref">out_dput /a>;n
430 /a>        }n
431 /a>n
432 /a>         a href="+code=cursor" class="sref">cursor /a> = ( a href="+code=attrlist_cursor_kern_t" class="sref">attrlist_cursor_kern_t /a> *)& a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=pos" class="sref">pos /a>;n
433 /a>         a href="+code=error" class="sref">error /a> = - a href="+code=xfs_attr_list" class="sref">xfs_attr_list /a>( a href="+code=XFS_I" class="sref">XFS_I /a>( a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>),  a href="+code=kbuf" class="sref">kbuf /a>,  a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=buflen" class="sref">buflen /a>,n
434 /a>                                         a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=flags" class="sref">flags /a>,  a href="+code=cursor" class="sref">cursor /a>);n
435 /a>        if ( a href="+code=error" class="sref">error /a>)n
436 /a>                goto  a href="+code=out_kfree" class="sref">out_kfree /a>;n
437 /a>n
438 /a>        if ( a href="+code=copy_to_user" class="sref">copy_to_user /a>( a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=buffer" class="sref">buffer /a>,  a href="+code=kbuf" class="sref">kbuf /a>,  a href="+code=al_hreq" class="sref">al_hreq /a>. a href="+code=buflen" class="sref">buflen /a>))n
439 /a>                 a href="+code=error" class="sref">error /a> = - a href="+code=EFAULT" class="sref">EFAULT /a>;n
440 /a>n
441 /a>  a href="+code=out_kfree" class="sref">out_kfree /a>:n
442 /a>        if ( a href="+code=is_vmalloc_addr" class="sref">is_vmalloc_addr /a>( a href="+code=kbuf" class="sref">kbuf /a>))n
443 /a>                 a href="+code=kmem_free_large" class="sref">kmem_free_large /a>( a href="+code=kbuf" class="sref">kbuf /a>);n
444 /a>        elsen
445 /a>                 a href="+code=kmem_free" class="sref">kmem_free /a>( a href="+code=kbuf" class="sref">kbuf /a>);n
446 /a>  a href="+code=out_dput" class="sref">out_dput /a>:n
447 /a>         a href="+code=dput" class="sref">dput /a>( a href="+code=dentry" class="sref">dentry /a>);n
448 /a>        return  a href="+code=error" class="sref">error /a>;n
449 /a>}n
450 /a>n
451 /a>intn
452 /a> a href="+code=xfs_attrmulti_attr_get" class="sref">xfs_attrmulti_attr_get /a>(n
453 /a>        struct  a href="+code=inode" class="sref">inode /a>            * a href="+code=inode" class="sref">inode /a>,n
454 /a>        unsigned char           * a href="+code=naml" class="sref">naml /a>,n
455 /a>        unsigned char            a href="+code=__user" class="sref">__user /a> * a href="+code=ubuf" class="sref">ubuf /a>,n
456 /a>         a href="+code=__uint32_t" class="sref">__uint32_t /a>              * a href="+code=len" class="sref">len /a>,n
457 /a>         a href="+code=__uint32_t" class="sref">__uint32_t /a>               a href="+code=flags" class="sref">flags /a>)n
458 /a>{n
459 /a>        unsigned char           * a href="+code=kbuf" class="sref">kbuf /a>;n
460 /a>        int                      a href="+code=error" class="sref">error /a> =  a href="+code=EFAULT" class="sref">EFAULT /a>;n
461 /a>n
462 /a>        if (* a href="+code=len" class="sref">len /a> >  a href="+code=XATTR_SIZE_MAX" class="sref">XATTR_SIZE_MAX /a>)n
463 /a>                return  a href="+code=EINVAL" class="sref">EINVAL /a>;n
464 /a>         a href="+code=kbuf" class="sref">kbuf /a> =  a href="+code=kmem_zalloc" class="sref">kmem_zalloc /a>(* a href="+code=len" class="sref">len /a>,  a href="+code=KM_SLEEP" class="sref">KM_SLEEP /a> |  a href="+code=KM_MAYFAIL" class="sref">KM_MAYFAIL /a>);n
465 /a>        if (! a href="+code=kbuf" class="sref">kbuf /a>) {n
466 /a>                 a href="+code=kbuf" class="sref">kbuf /a> =  a href="+code=kmem_zalloc_large" class="sref">kmem_zalloc_large /a>(* a href="+code=len" class="sref">len /a>);n
467 /a>                if (! a href="+code=kbuf" class="sref">kbuf /a>)n
468 /a>                        return  a href="+code=ENOMEM" class="sref">ENOMEM /a>;n
469 /a>        }n
470 /a>n
471 /a>         a href="+code=error" class="sref">error /a> =  a href="+code=xfs_attr_get" class="sref">xfs_attr_get /a>( a href="+code=XFS_I" class="sref">XFS_I /a>( a href="+code=inode" class="sref">inode /a>),  a href="+code=naml" class="sref">naml /a>,  a href="+code=kbuf" class="sref">kbuf /a>, (int *) a href="+code=len" class="sref">len /a>,  a href="+code=flags" class="sref">flags /a>);n
472 /a>        if ( a href="+code=error" class="sref">error /a>)n
473 /a>                goto  a href="+code=out_kfree" class="sref">out_kfree /a>;n
474 /a>n
475 /a>        if ( a href="+code=copy_to_user" class="sref">copy_to_user /a>( a href="+code=ubuf" class="sref">ubuf /a>,  a href="+code=kbuf" class="sref">kbuf /a>, * a href="+code=len" class="sref">len /a>))n
476 /a>                 a href="+code=error" class="sref">error /a> =  a href="+code=EFAULT" class="sref">EFAULT /a>;n
477 /a>n
478 /a>  a href="+code=out_kfree" class="sref">out_kfree /a>:n
479 /a>        if ( a href="+code=is_vmalloc_addr" class="sref">is_vmalloc_addr /a>( a href="+code=kbuf" class="sref">kbuf /a>))n
480 /a>                 a href="+code=kmem_free_large" class="sref">kmem_free_large /a>( a href="+code=kbuf" class="sref">kbuf /a>);n
481 /a>        elsen
482 /a>                 a href="+code=kmem_free" class="sref">kmem_free /a>( a href="+code=kbuf" class="sref">kbuf /a>);n
483 /a>        return  a href="+code=error" class="sref">error /a>;n
484 /a>}n
485 /a>n
486 /a>intn
487 /a> a href="+code=xfs_attrmulti_attr_set" class="sref">xfs_attrmulti_attr_set /a>(n
488 /a>        struct  a href="+code=inode" class="sref">inode /a>            * a href="+code=inode" class="sref">inode /a>,n
489 /a>        unsigned char           * a href="+code=naml" class="sref">naml /a>,n
490 /a>        const unsigned char      a href="+code=__user" class="sref">__user /a> * a href="+code=ubuf" class="sref">ubuf /a>,n
491 /a>         a href="+code=__uint32_t" class="sref">__uint32_t /a>               a href="+code=len" class="sref">len /a>,n
492 /a>         a href="+code=__uint32_t" class="sref">__uint32_t /a>               a href="+code=flags" class="sref">flags /a>)n
493 /a>{n
494 /a>        unsigned char           * a href="+code=kbuf" class="sref">kbuf /a>;n
495 /a>        int                      a href="+code=error" class="sref">error /a> =  a href="+code=EFAULT" class="sref">EFAULT /a>;n
496 /a>n
497 /a>        if ( a href="+code=IS_IMMUTABLE" class="sref">IS_IMMUTABLE /a>( a href="+code=inode" class="sref">inode /a>) ||  a href="+code=IS_APPEND" class="sref">IS_APPEND /a>( a href="+code=inode" class="sref">inode /a>))n
498 /a>                return  a href="+code=EPERM" class="sref">EPERM /a>;n
499 /a>        if ( a href="+code=len" class="sref">len /a> >  a href="+code=XATTR_SIZE_MAX" class="sref">XATTR_SIZE_MAX /a>)n
500 /a>                return  a href="+code=EINVAL" class="sref">EINVAL /a>;n
501 /a>n
502 /a>         a href="+code=kbuf" class="sref">kbuf /a> =  a href="+code=memdup_user" class="sref">memdup_user /a>( a href="+code=ubuf" class="sref">ubuf /a>,  a href="+code=len" class="sref">len /a>);n
503 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=kbuf" class="sref">kbuf /a>))n
504 /a>                return  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=kbuf" class="sref">kbuf /a>);n
505 /a>n
506 /a>         a href="+code=error" class="sref">error /a> =  a href="+code=xfs_attr_set" class="sref">xfs_attr_set /a>( a href="+code=XFS_I" class="sref">XFS_I /a>( a href="+code=inode" class="sref">inode /a>),  a href="+code=naml" class="sref">naml /a>,  a href="+code=kbuf" class="sref">kbuf /a>,  a href="+code=len" class="sref">len /a>,  a href="+code=flags" class="sref">flags /a>);n
507 /a>n
508 /a>        return  a href="+code=error" class="sref">error /a>;n
509 /a>}n
510 /a>n
511 /a>intn
512 /a> a href="+code=xfs_attrmulti_attr_removl" class="sref">xfs_attrmulti_attr_removl /a>(n
513 /a>        struct  a href="+code=inode" class="sref">inode /a>            * a href="+code=inode" class="sref">inode /a>,n
514 /a>        unsigned char           * a href="+code=naml" class="sref">naml /a>,n
515 /a>         a href="+code=__uint32_t" class="sref">__uint32_t /a>               a href="+code=flags" class="sref">flags /a>)n
516 /a>{n
517 /a>        if ( a href="+code=IS_IMMUTABLE" class="sref">IS_IMMUTABLE /a>( a href="+code=inode" class="sref">inode /a>) ||  a href="+code=IS_APPEND" class="sref">IS_APPEND /a>( a href="+code=inode" class="sref">inode /a>))n
518 /a>                return  a href="+code=EPERM" class="sref">EPERM /a>;n
519 /a>        return  a href="+code=xfs_attr_removl" class="sref">xfs_attr_removl /a>( a href="+code=XFS_I" class="sref">XFS_I /a>( a href="+code=inode" class="sref">inode /a>),  a href="+code=naml" class="sref">naml /a>,  a href="+code=flags" class="sref">flags /a>);n
520 /a>}n
521 /a>n
522 /a> a href="+code=STATIC" class="sref">STATIC /a> intn
523 /a> a href="+code=xfs_attrmulti_by_handle" class="sref">xfs_attrmulti_by_handle /a>(n
524 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=parfilp" class="sref">parfilp /a>,n
525 /a>        void                     a href="+code=__user" class="sref">__user /a> * a href="+code=arg" class="sref">arg /a>)n
526 /a>{n
527 /a>        int                      a href="+code=error" class="sref">error /a>;n
528 /a>         a href="+code=xfs_attr_multiop_t" class="sref">xfs_attr_multiop_t /a>      * a href="+code=ops" class="sref">ops /a>;n
529 /a>         a href="+code=xfs_fsop_attrmulti_handlereq_t" class="sref">xfs_fsop_attrmulti_handlereq_t /a>  a href="+code=am_hreq" class="sref">am_hreq /a>;n
530 /a>        struct  a href="+code=dentry" class="sref">dentry /a>           * a href="+code=dentry" class="sref">dentry /a>;n
531 /a>        unsigned int             a href="+code=i" class="sref">i /a>,  a href="+code=size" class="sref">size /a>;n
532 /a>        unsigned char           * a href="+code=attr_naml" class="sref">attr_naml /a>;n
533 /a>n
534 /a>        if (! a href="+code=capable" class="sref">capable /a>( a href="+code=CAP_SYS_ADMIN" class="sref">CAP_SYS_ADMIN /a>))n
535 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
536 /a>        if ( a href="+code=copy_from_user" class="sref">copy_from_user /a>(& a href="+code=am_hreq" class="sref">am_hreq /a>,  a href="+code=arg" class="sref">arg /a>, sizeof( a href="+code=xfs_fsop_attrmulti_handlereq_t" class="sref">xfs_fsop_attrmulti_handlereq_t /a>)))n
537 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
538 /a>n
539 /a>         spai class="comment">/* ovlrflow check */ /spaion
540 /a>        if ( a href="+code=am_hreq" class="sref">am_hreq /a>. a href="+code=opcount" class="sref">opcount /a> >=  a href="+code=INT_MAX" class="sref">INT_MAX /a> / sizeof( a href="+code=xfs_attr_multiop_t" class="sref">xfs_attr_multiop_t /a>))n
541 /a>                return - a href="+code=E2BIG" class="sref">E2BIG /a>;n
542 /a>n
543 /a>         a href="+code=dentry" class="sref">dentry /a> =  a href="+code=xfs_handlereq_to_dentry" class="sref">xfs_handlereq_to_dentry /a>( a href="+code=parfilp" class="sref">parfilp /a>, & a href="+code=am_hreq" class="sref">am_hreq /a>. a href="+code=hreq" class="sref">hreq /a>);n
544 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=dentry" class="sref">dentry /a>))n
545 /a>                return  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=dentry" class="sref">dentry /a>);n
546 /a>n
547 /a>         a href="+code=error" class="sref">error /a> =  a href="+code=E2BIG" class="sref">E2BIG /a>;n
548 /a>         a href="+code=size" class="sref">size /a> =  a href="+code=am_hreq" class="sref">am_hreq /a>. a href="+code=opcount" class="sref">opcount /a> * sizeof( a href="+code=xfs_attr_multiop_t" class="sref">xfs_attr_multiop_t /a>);n
549 /a>        if (! a href="+code=size" class="sref">size /a> ||  a href="+code=size" class="sref">size /a> > 16 *  a href="+code=PAGE_SIZE" class="sref">PAGE_SIZE /a>)n
550 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
551 /a>n
552 /a>         a href="+code=ops" class="sref">ops /a> =  a href="+code=memdup_user" class="sref">memdup_user /a>( a href="+code=am_hreq" class="sref">am_hreq /a>. a href="+code=ops" class="sref">ops /a>,  a href="+code=size" class="sref">size /a>);n
553 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=ops" class="sref">ops /a>)) {n
554 /a>                 a href="+code=error" class="sref">error /a> =  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=ops" class="sref">ops /a>);n
555 /a>                goto  a href="+code=out_dput" class="sref">out_dput /a>;n
556 /a>        }n
557 /a>n
558 /a>         a href="+code=attr_naml" class="sref">attr_naml /a> =  a href="+code=kmalloc" class="sref">kmalloc /a>( a href="+code=MAXNAMELEN" class="sref">MAXNAMELEN /a>,  a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL /a>);n
559 /a>        if (! a href="+code=attr_naml" class="sref">attr_naml /a>)n
560 /a>                goto  a href="+code=out_kfree_ops" class="sref">out_kfree_ops /a>;n
561 /a>n
562 /a>         a href="+code=error" class="sref">error /a> = 0;n
563 /a>        for ( a href="+code=i" class="sref">i /a> = 0;  a href="+code=i" class="sref">i /a> <  a href="+code=am_hreq" class="sref">am_hreq /a>. a href="+code=opcount" class="sref">opcount /a>;  a href="+code=i" class="sref">i /a>++) {n
564 /a>                 a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> =  a href="+code=strncpy_from_user" class="sref">strncpy_from_user /a>((char *) a href="+code=attr_naml" class="sref">attr_naml /a>,n
565 /a>                                 a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_attrnaml" class="sref">am_attrnaml /a>,  a href="+code=MAXNAMELEN" class="sref">MAXNAMELEN /a>);n
566 /a>                if ( a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> == 0 ||  a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> ==  a href="+code=MAXNAMELEN" class="sref">MAXNAMELEN /a>)n
567 /a>                         a href="+code=error" class="sref">error /a> = - a href="+code=ERANGE" class="sref">ERANGE /a>;n
568 /a>                if ( a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> < 0)n
569 /a>                        break;n
570 /a>n
571 /a>                switch ( a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_opcode" class="sref">am_opcode /a>) {n
572 /a>                case  a href="+code=ATTR_OP_GET" class="sref">ATTR_OP_GET /a>:n
573 /a>                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> =  a href="+code=xfs_attrmulti_attr_get" class="sref">xfs_attrmulti_attr_get /a>(n
574 /a>                                         a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>,  a href="+code=attr_naml" class="sref">attr_naml /a>,n
575 /a>                                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_attrvalul" class="sref">am_attrvalul /a>, & a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_length" class="sref">am_length /a>,n
576 /a>                                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_flags" class="sref">am_flags /a>);n
577 /a>                        break;n
578 /a>                case  a href="+code=ATTR_OP_SET" class="sref">ATTR_OP_SET /a>:n
579 /a>                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> =  a href="+code=mnt_want_write_file" class="sref">mnt_want_write_file /a>( a href="+code=parfilp" class="sref">parfilp /a>);n
580 /a>                        if ( a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a>)n
581 /a>                                break;n
582 /a>                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> =  a href="+code=xfs_attrmulti_attr_set" class="sref">xfs_attrmulti_attr_set /a>(n
583 /a>                                         a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>,  a href="+code=attr_naml" class="sref">attr_naml /a>,n
584 /a>                                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_attrvalul" class="sref">am_attrvalul /a>,  a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_length" class="sref">am_length /a>,n
585 /a>                                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_flags" class="sref">am_flags /a>);n
586 /a>                         a href="+code=mnt_drop_write_file" class="sref">mnt_drop_write_file /a>( a href="+code=parfilp" class="sref">parfilp /a>);n
587 /a>                        break;n
588 /a>                case  a href="+code=ATTR_OP_REMOVE" class="sref">ATTR_OP_REMOVE /a>:n
589 /a>                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> =  a href="+code=mnt_want_write_file" class="sref">mnt_want_write_file /a>( a href="+code=parfilp" class="sref">parfilp /a>);n
590 /a>                        if ( a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a>)n
591 /a>                                break;n
592 /a>                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> =  a href="+code=xfs_attrmulti_attr_removl" class="sref">xfs_attrmulti_attr_removl /a>(n
593 /a>                                         a href="+code=dentry" class="sref">dentry /a>-> a href="+code=d_inode" class="sref">d_inode /a>,  a href="+code=attr_naml" class="sref">attr_naml /a>,n
594 /a>                                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_flags" class="sref">am_flags /a>);n
595 /a>                         a href="+code=mnt_drop_write_file" class="sref">mnt_drop_write_file /a>( a href="+code=parfilp" class="sref">parfilp /a>);n
596 /a>                        break;n
597 /a>                default:n
598 /a>                         a href="+code=ops" class="sref">ops /a>[ a href="+code=i" class="sref">i /a>]. a href="+code=am_error" class="sref">am_error /a> =  a href="+code=EINVAL" class="sref">EINVAL /a>;n
599 /a>                }n
600 /a>        }n
601 /a>n
602 /a>        if ( a href="+code=copy_to_user" class="sref">copy_to_user /a>( a href="+code=am_hreq" class="sref">am_hreq /a>. a href="+code=ops" class="sref">ops /a>,  a href="+code=ops" class="sref">ops /a>,  a href="+code=size" class="sref">size /a>))n
603 /a>                 a href="+code=error" class="sref">error /a> =  a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
604 /a>n
605 /a>         a href="+code=kfree" class="sref">kfree /a>( a href="+code=attr_naml" class="sref">attr_naml /a>);n
606 /a>  a href="+code=out_kfree_ops" class="sref">out_kfree_ops /a>:n
607 /a>         a href="+code=kfree" class="sref">kfree /a>( a href="+code=ops" class="sref">ops /a>);n
608 /a>  a href="+code=out_dput" class="sref">out_dput /a>:n
609 /a>         a href="+code=dput" class="sref">dput /a>( a href="+code=dentry" class="sref">dentry /a>);n
610 /a>        return - a href="+code=error" class="sref">error /a>;n
611 /a>}n
612 /a>n
613 /a>intn
614 /a> a href="+code=xfs_ioc_spacl" class="sref">xfs_ioc_spacl /a>(n
615 /a>        struct  a href="+code=xfs_inode" class="sref">xfs_inode /a>        * a href="+code=ip" class="sref">ip /a>,n
616 /a>        struct  a href="+code=inode" class="sref">inode /a>            * a href="+code=inode" class="sref">inode /a>,n
617 /a>        struct  a href="+code=file" class="sref">file /a>             * a href="+code=filp" class="sref">filp /a>,n
618 /a>        int                      a href="+code=ioflags" class="sref">ioflags /a>,n
619 /a>        unsigned int             a href="+code=cmd" class="sref">cmd /a>,n
620 /a>         a href="+code=xfs_flock64_t" class="sref">xfs_flock64_t /a>           * a href="+code=bf" class="sref">b/xfs/xfs_ioctl.c#L480" idueL480" cla621" idueL6nopmlueLfilp" class="stf="fttl.c;n                return  a href="+code=PTR_ERR" class="sre        *8e=ops" cl4if ( a href="+code=copsP_. a href="+code=op">opcount /a> >=  a href="+code=IN6lass="sre6">error /a>;n)ve s cla clless">opcount /a> >=  a href="+code=IN6lioctl.c#L8">
528 /a>         a hr6f="+c6de=xfseq /a>. a href="+code=stf="fttl. un="fsten extents are en"+cod.">opcount /a> >=  a href="+code=IN6lne" namlufs_ioctl.c#L529" idueL526" cla6s="lineq /a>. a href="+code=stf="fttl.f">opcount /a> >=  a href="+code=IN6sref">am_6req /a>;noref=sb_version_hasextflgbioc4a href="+c">opmlusb_version_hasextflgbioss="s class="line" namlue="+code=inode" class="s4 /a>               i_m=ops" class="sref">i_m=opss="s4 /a>               musb          break;usb38453" clas clasnt /a> >=  a href="+code=IN6fs/xfs_io6tl.c#L531" idueL531" cla6s="li63fs_ioctl.c#L591" >
535 /a>                return - a href="+code=XFS_ERROR" class="sref">XFS_ERROR /a>( a href="+code=EPERM" class="sref">EPERM /a>);n
54="+code=copy_from_user" class="sref">copy_from_user /a>(& a href="+code=am_hreq" class="sref">am_hreq /a>,  a 6ss="line"6namlueL533">
533 /a>nxfs_ioc_spe /a>( a 6ref="+code=CAP_SYS_ADMIN6 clas634 /a>                 a href="+c href="+code=filp" class="sre4 /a>               i_>,nEPERM /a>);n
54="+code=copy_from_user" class="sref">copy_from_user /a>(& a href="+code=am_hreq" class="sref">am_hreq /a>,  a 6sfs/xfs_i6ioctl.c#L536" idueL536" 6lass=63fs_attr_set /a>( a href="+code=XFS_6ref="+cod6=arg" class="sref">arg /6>, si6eof( a href="+code!copy_from_user /s /a>,nEPERM /a>);n
538 /a>n
BADFmp; a href="+codBADF_hreq" class="sref">am_hreq /a>,  a 6sne" namlu"fs/xfs/xfs_ioctl.c#L5406 idue6540" class="line" namlueL540">
540 /6>        6f ( a href="+code=am_hre6" cla63tl.c#L530" id_ops" class="sref">oxfsSREclass="sref">am_xfsSREc="line" namlueL539"> href="+code=filp" class="sre4 /a>               i_m=ef="+code=filp" ci_m=eflineass="sref">EPERM /a>);nINT_MAX /a> / s6zeof(64#L502" idueL502" class="line
e" namlueL600">
600 /a>       q" class="sref">am_hreq /a>,  a 6542">
5426/a>nam_hreq /a>. a href="+code  a href=6+code=xfs_handlereq_to_d6ntry"64=ops" class="sref">ops /a>,  a hs /a>,nEPERM /a>);n);nops /a>,  a hs /a>,n62BIG 6477">
477 /a>n
54864">kmalloc /a>( a href="+code=MAXNAM6ref">opco6nt /a> * sizeof( a href=6+code6xfs_attr_multi         a href="+c a>,n IS384536 /a>        if ( a href="+codea        6"sref">PAGE_SIZE /a>)nn
651 /a>n
547 /a>6memdup_user" class="sref6" cla6user" crohref="fs/xa0c /a>[ a href="+codef="+code=5Fass="line" na6>
552 /a>         a href6"+cod65q" class="sref">am_hreq /a>,  a ="linueL551">
651 /a>n * sizeof( a href=6+code6xfamlueL5536>
553 /a>        if ( a 6ref="65a href="fs/O_NDELAY#L class="sref">error /a>;n
554 /a>               6 a hr6f="+code=erroridueL613" class="linueL551">
651 /a>ncmd /a>,ncmd /a>,nflags /a>c#L545" i6ueL545" class="line" nam6ueL5464aml /apoflags /ahref="+cIO_a> IS href="fs/xfs/xIO_a> IS/a>[ a href="+codef="+code=5Fass="NBLOCKa>n>
555 /a>               6goto 65kfree" class="sref">kfree /asref">mnt_drop_write_file /a>( a href="+code=parfilp" class="sref">parfilcla6user" crohref="fs/xa0c /a>[ a href="+codef="+code=5Fass=""fs/xfs/x>
556 /a>        }nerror /a>;n
557 /a>n
558 /a>         a href6"+cod65ioctl.c#L539" idueL539" class="line"amlueL5596>
559 /a>        if (! a6href=6+code=_hreq /a>,  a 6sa> intn
560 /a>               6goto 6a href" class="sref">xfs_ioc_bulkstade=stf="fttl.f">opcoioc_bulkstadctl.c#L615" idueL615" class="line" namlueL5616>
561 /a>n           * a ersio_tcode=filp" class="sref">filp /a>,m6user" crohref="moctl.c#L618" idueL618" class="line" namlueL5626>
562 /a>         a href6"+cod6=error" class=ref="+code=cmd" class="sref">cmd /a>,n
563 /a>        for ( a6href=6+code=i" classref="+code=__user" class="sref">__user /a> * a href="+code=arg" class="sref">arg /a>)n
564 /a>               6 a hr6f="+co="+c">opmlueLfilp" class="stf="famlueL5656>
565 /a>               6     66kfree" class="sref">kfree /a* a h>)))bulk_attrmulti_handlereq_t /a>)))bulk_attrfree" clasref">cmd /a>,n
566 /a>               6if ( 6 href="+code=o=copsP_oamlueL5676>
567 /a>               6     66kfree" class="sref">kfree /af="+codtrmulti_handlereq_t /codtr href="fs/O_NDELAY#6 idue6540" classti_s="sref">oref=sb_sti_ss="srerflow check */ /spaion
54 numberd"fttl. un="fsten extents are en"+cod.">oamlueL5586>
568 /a>               6if ( 66          a href="+code=ioflags" class="sref">ioflagdon  a href="+code=aon ctl.c#L611" idueL611" class="line" namlueL5596>
569 /a>               6     6  break;n                return  a amlueL5706>
570 /a>n
571 /a>               6switc6 ( a href="+corflow check */ /spaiontherea>)vemo)vestadsf="+get andef">bulkstadd"fttl. un="fsten extents are en"+cod.">oamlueL5726>
572 /a>               6case 6a href="+code=rflow check */ /spaionbut " cd in dmapi)d"fttl. un="fsten extents are en"+cod.">oamlueL5636>
573 /a>               6     67ctl.c#L534" idueL534" class="line" 6amlueL5746>
574 /a>               6     6               class="sref">capable /a>( a href="+code=CAP_SYS_ADMIN" class="sref">CAP_SYS_ADMIN /a>))n
575 /a>               6     6                   a h" class="sref">E2BIG /a>;n
576 /a>               6     67ctl.c#L547" idueL547" class="line" 6amlueL5776>
577 /a>               6     67ode=IS_IMMUTABLE" class="sref">I"sreFORCED_SHUTDOWN /a>))nm6user" crohref="moctl..c#L535" idueL535" class="line" 6amlueL5586>
578 /a>               6case 6a href="+code=ATTR_OP_s="sre4 /a>               i_m=ef="+code=filp" ci_m=eflineass="sref">EPERM /a>)O href="6_MAX" claOa0c /a>[ a href="+codef="+code=5Fass=amlueL5796>
579 /a>               6     6   a h>[ a href="+codef="+code=5Fass=amlueL5806>
580 /a>               6     68ode=am_hreq" class="sref">am_hre>copy_from_user /a>(& a href="+code=am_hreq" class="sref">am_hreoulk_attl.c#L480" idueLulk_atctl."sref">arg /a>, sizeof( a href="+code=xfs_fsop_attrmulti_handlereq_t" classbulk_attrmulti_handlereq_t /a>)))bulk_attrfreel.c#L537" idueL537" class="line" 6amlueL5816>
581 /a>               6     6          break;nXFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
582 /a>               6     68ode=copy_from_user" class="sref">copamlueL5836>
583 /a>               6     68q" class="sref">am_hreq /a>,  a >copy_from_user /a>(& a href="+code=am_hreq" class="sref">am_hressti_s="sref">oref=sb_sti_ss="scsref">cmd /a>,nops /a>,  ti_ssref="fs/xfs/xfs_ti_ssrxfs_fsop_attrmulti_handlereq__s>
564 /a>  code=argsf="+col.c#L537" idueL537" class="line" 6amlueL5746>
584 /a>               6     6                   a hRROR" class="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
585 /a>               6     68ode=copy_from_user" class="sref">copamlueL5866>
586 /a>               6     68q" class="sref">aam_hreq /a>,  a >c>;  a href="+code= class="s="fs/xfs/x6s_ioc65oulk_attl.c#L480" idueLulk_atctl.sref">ops /a>,  i>c>;  a href="+code=i class="s)_ioct=l.c#L569" idueL569" class="line" 6amlueL5876>
587 /a>               6     6  break;n               i_m=ef="+code=filp" ci_m=eflineass="sref">EPERM /a>);nINT_MAX /a> / s6zeof(64#L502" iamlueL5886>
588 /a>               6case 68ioctl.c#L539" idueL539" class="line"amlueL5896>
589 /a>               6     68q" class="sref">as/xfs/x6s_ioc65oulk_attl.c#L480" idueLulk_atctl.sref">ops /a>,  ubuffser /a>(& a hubuffses="s=""fs/xfs/x6s_ioc65NULa href="6_MAX" cNULactl.c#L526" idueL526" class="line" 6amlueL5906>
590 /a>               6     6  if ( a href="+code=os="sre4 /a>               i_m=ef="+code=filp" ci_m=eflineass="sref">EPERM /a>);nINT_MAX /a> / s6zeof(64#L502" iamlueL5916>
591 /a>               6     69ctl.c#L539" idueL539" class="line" namlueL5926>
592 /a>               6     69q" class="sref">am_hreq /a>,  a a href="fs/xfs/xfs_ioctl.=""fs/xfs/x6s_ioc65de" cOC_FSINUMBERef="+code=MAXNAMde" cOC_FSINUMBERectl.c#L526" idueL526" class="line" 6amlueL5836>
593 /a>               6     6                   a hidueL613" class="linueL551">
651 /a>nm6user" crohref="moctl.lass="sref">ops /a>[ assti_s="sref">oref=sb_sti_ss="scsss="sref">ops /a>[ a>c>;  a href="+code= class="sc#L620" idueL620" class="line" namlueL5946>
594 /a>               6     6                   a href="+code=ops" class="sref">ops /a>[ aoulk_attl.c#L480" idueLulk_atctl.sref">ops /a>,  ubuffser /a>(& a hubuffses="scsref">cmd /a>,nINT_MAX /a> / s6zeof(64#L502" iamlueL5756>
595 /a>               6     6   a href="+coelseef">am_hreq /a>,  a a href="fs/xfs/xfs_ioctl.=""fs/xfs/x6s_ioc65de" cOC_FSBULKfs/x_SING clas634 /a>     de" cOC_FSBULKfs/x_SING cctl.c#L526" idueL526" class="line" 6amlueL5866>
596 /a>               6     6  break;n
651 /a>nm6user" crohref="moctl.lass="sref">ops /a>[ assti_s="sref">oref=sb_sti_ss="sc#L526" idueL526" class="line" 6amlueL5876>
597 /a>               6defau6t:nops /a>[ aoulk_attl.c#L480" idueLulk_atctl.sref">ops /a>,  ubuffser /a>(& a hubuffses="scsss="sref">ops /a>[ adon  a href="+code=aon ctl.">INT_MAX /a> / s6zeof(64#L502" iamlueL5886>
598 /a>               6     6   a href="+coelsee e=rflow check */ /spaionoamlueL5996>
599 /a>               6}n
651 /a>nm6user" crohref="moctl.lass="sref">ops /a>[ assti_s="sref">oref=sb_sti_ss="scsss="sref">ops /a>[ a>c>;  a href="+code= class="scfs/xfs/x6s_ioc65clasbulkstad_on  a href="+code=clasbulkstad_on s="sc#L526" idueL526" class="line" 7amlueL6007>
600 /a>        }n(ncmd /a>,nops /a>,  ubuffser /a>(& a hubuffses="sc#L526" idueL526" class="line" 7a1lueL6007>
591 /a>               7/xfs_70         break;nops /a>[ adon  a href="+code=aon ctl.">INT_MAX /a> / s6zeof(64#L502" 7amlueL6027>
602 /a>        if ( a 7ref="70ode=copy_from_user" class="sref">co7amlueL6037>
603 /a>               7 a hr70q" class="sref">am_hreq /a>,  a ="linueL551">
651 /a>n * sizeof( a href=6+code6x7amlueL6047>
604 /a>nXFS_" idueL561" class="line" namlu5 /a>                return  a7amlueL6057>
605 /a>         a href7"+cod70ode=copy_from_user" class="sref">co7amlueL6067>
606 /a>  a href="+code7out_k70ode=copy_from_user" class="sref"oulk_attl.c#L480" idueLulk_atctl.sref">ops /a>,  o/a>;  a href="+code=i class="s=!"fs/xfs/x6s_ioc65NULa href="6_MAX" cNULactl.c.c#L572" idueL572" class="line" 7amlueL6077>
607 /a>         a href7"+cod70:ncopy_to_user /a>( a href="+code=am_hreq" class="sref">am_hreoulk_attl.c#L480" idueLulk_atctl.sref">ops /a>,  ti_ssref="fs/xfs/xfs_ti_ssrxfs_fsss="sref">ops /a>[ assti_s="sref">oref=sb_sti_ss="sc#L526" idueL526" class="line" 7amlueL6087>
608 /a>  a href="+code7out_d70  a href="+code=ops" class="se=ops" classssssssssssssop_attrmulti_handlereq_t" codtrmulti_handlereq_t /codtr hrel.c#L537" idueL537" class="line" 7amlueL6097>
609 /a>         a href7"+cod70  a href="+code=ops" class="sRROR" class="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
610 /a>        return 7 a hr71ctl.c#L571" idueL571" class="line" 7amlueL6117>
611 /a>}ncopy_to_user /a>( a href="+code=am_hreq" class="sref">am_hreoulk_attl.c#L480" idueLulk_atctl.sref">ops /a>,  o/a>;  a href="+code=i class="scsss="sref">ops /a>[ a>c>;  a href="+code= class="scfop_attrmulti_handlereq>c>;  a href="+code= class="sl.c#L537" idueL537" class="line" 7amlueL6127>
612 /a>nXFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
613 /a>intn
614 /a> a href="+code=7fs_io71s="line"|n
616 /a>        struct 7a hre7="+codc#L612" idueL612" class="line" 7amlueL6077>
617 /a>        struct 7a hre7161" class="line"|nEFAULT sa> intn
619 /a>        unsigne7 int 71code=_hreq /a>,  a 6class="_fsgeometry_v1multi_handlereq_t /c="_fsgeometry_v1class#L523" idueL523" class="line" 7amlueL6207>
620 /a>         a href7"+cod7=xfs_flock64_t" class="sref">xfs_ersio_t /a>           * a ersio_tcode=filp" class="sref">filp /a>,m6user" crohref="moctl.c#L618" idueL618" class="line" 7fs_ioc4a 7ref="+c__user /a> * a href="+code=arg" class="sref">arg /a>)n)))geomtrcode=filp" clmulti_handlereqfsgeomulti_handlereqfsgeonamlu5 /a>                return  a7href="+co7e=PTR_ERR" class="sre   7    *72              copsP_                return  a7 href="fs7xfs/12 /a>nco7aml /a>);7
651 /a>nm6user" crohref="moctl.lass="sref">ops /a>[ afsgeomulti_handlereqfsgeonaml, 3.c#L538" idueL538" class="line" 7rror /a>;7I="linueL551">
651 /a>n * sizeof( a href=6+code6x7e=IN6lioc7l.c#L8">
528 /a>        7a hr672 href="+code=ATTR_OP_s="sre4 /a>            " idueL561" class="line" namlu5 /a>                return  a7 mlueL6197 >=  a href="+code=IN7lne" 72  a h>[ a href="+codef="+code=5Fass7" class="74 /a>               i_m=7ps" c7ass="sref">i_midueL613" class="linfs/xfs_io6tl.c#L525" idueL525" cla6s="li67l.c#L591"7>
535 /a>               7retur7 - a hf="+code=stf="fttl. Only amluw thCallcr should have p=stcodan _ioutl.  of.typefs_io6tl.c#L525" idueL525" cla6s="li67ltl.c;n)))geomtv1_t.  This is a propcr subse  of.thefs_io6tl.c#L525" idueL525" cla6s="li67lcode=cop7r /a>(& a href="+cod7=am_h7eq" clf="+code=stf="fttl. Only amluw th_t /a>)))geomtt.that _t /a>sgeometry() fills inclless">opcount /a> >=  a href="+co7"line" cl7s       a href="+cnode /7>))n<7 href=e=xfseq /a>. a href="+code=stf="fttl. un="fsten extents are en"+cod.">7s/xfs/xfs7ioctl="line" namlueL543"7
54="73octl.c#L613" idueL613" class="liopy_to_user /a>( a href="+code=am_hreq" class="sref">am_hreqzeof( a href="+code=xfs_fsss="sref">ops /a>[ afsgeomulti_handlereqfsgeonaml, op_attrmulti_handlereq_t" classgeomtv1_tmulti_handlereq_t /a>)))geomtv1_ts="sl.c#L537" idueL537" class="line" 7y_from_us7r /a>(& a href="+cod7=am_h73 break;nXFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n               f_m=ef="7code=7ilp" cf_m=efliRROR" c19ef="+code=ops" cl4if ( a href=7 namlueL578">
538 /a>n
BADFmp; a href="+cod7ADF_h73  a h>[ a href="+codef="+code=5Fass7ss="sref"7am_xfsSREc="line" namlue7539">74 href" class="sref">sa> intn,  a 6class="_fsgeometrymulti_handlereq_t /c="_fsgeometryclass#L523" idueL523" class="line" 7amlueL5397>
e" namlueL600">
600 /a7     7 q" class="sre" class="sref">xfs_ersio_t /a>           * a ersio_tcode=filp" class="sref">filp /a>,m6user" crohref="moctl.c#L618" idueL618" class="line" 7s="line" 7las       a href="+cO_ND7LAYa>74code=i" classref="+code=__user" class="sref">__user /a> * a href="+code=arg" class="sref">arg /a>)nopmlueLfilp" class="stf="7ONBLOCKa>7kfree /a* a h>)))geomtrmulti_handlereq_t /a>)))geomtrcode=filp" clmulti_handlereqfsgeomulti_handlereqfsgeonamlu5 /a>                return  a7="fs/xfs/7fs_4 /a>               f7521 /74href="+code=o=copsP_                return  a7ef="fs/xf7/xfs_iocxfs_ioctl.c#L5617 idue7561" class="line"|n
651 /a>nm6user" crohref="moctl.lass="sref">ops /a>[ afsgeomulti_handlereqfsgeonaml, 4.c#L538" idueL538" class="line" 7s_attr_mu7ti         a href="+c a>7nas/xfs/x6s_ioc65="linueL551">
651 /a>n * sizeof( a href=6+code6x7fs/xf"fs/7fs/xfs_iocxfs_ioctl.c#L571" id75 if ( a href="+code=os="sre4 /a>            " idueL561" class="line" namlu5 /a>                return  a7xfs_lass=7ERle /a>(n
552 /a>         a href7"+cod75q" class="sref">am_hreq /a>,  a opy_to_user /a>( a href="+code=am_hreq" class="sref">am_hreqzeof( a href="+code=xfs_fsss="sref">ops /a>[ afsgeomulti_handlereqfsgeonaml, op_attrmulti_handlereqfsgeomulti_handlereqfsgeonamll.c#L537" idueL537" class="line" 7amlueL5537>
553 /a>        if ( a 7ref="75a href="fs/O_NDELAY#L class=lass="sref">XFS_ERROR /a>( a href="+code=EFAULT" class="sref">EFAULT /a>);n
554 /a>               7 a hr7f="+code=errorRROR" c19ef="+code=ops" cl4if ( a href=7"NBLOCKa>7>
555 /a>               7goto 75kfreec#L612" idueL612" class="line" 7""fs/xfs/7>
556 /a>        }n
557 /a>n. a href="+c* Linuxin tosdcd in
54 xIO_ao=coerfaceclless">opcount /a> >=  a href="+co7amlueL5597>
559 /a>        if (! a7href=7+code=_=xfseq /a>. a href="+c*fttl. un="fsten extents are en"+cod.">7amlueL5607>
560 /a>               7goto 76ctl.c#L571" idueL571" class="line" 7amlueL5617>
561 /a>n
562 /a>         a href7"+cod7=error" class="sref">xfs_eerge/c="_x"+cIO_a> IS href="fsxfs_eerge/c="_x"+cIOclass#L523" idueL523" class="line" 7amlueL5637>
563 /a>        for ( a7href=7+code=i" classref="+code=cmd" multi_handlereqf);n
564 /a>               7 a hr764ode=i" classref="+code=cmd" multi_handlereqstarrmulti_handlereqstarrhreft /a> * sizeof( a href=6+code6x7amlueL5657>
565 /a>               7     76kfree="+c">opmlueLfilp" class="stf="7amlueL5667>
566 /a>               7if ( 7 href="+code=oref="+code=cmd" multi_handlereqx"+cIO_a> IS href="fsxfcopsP_GET"smulti_handlereqstarrmulti_handlereqstarrhref9ef="+code=ops" cl4if ( a href=7amlueL5677>
567 /a>               7     7661" class="line"|n * sizeof( a href=6+code6x7amlueL5597>
569 /a>               7     76ef="fs/xfs/xfs_ioctl.idueL613" classx"+cIO_a> IS href="fsxfcopsP_GET84536 /a>        if ( XFLAGS_ADMIN6 clas634 /a>     f ( XFLAGS_ADMIN6 chref9ef="+code=ops" cl4if ( a href=7amlueL5707>
570 /a>n
571 /a>               7switc77         break;n IS href="fsxfcopsP_GETf="+c= ~36 /a>        if ( XFLAGS_ADMIN6 clas634 /a>     f ( XFLAGS_ADMIN6 chref9ef="+code=ops" cl4if ( a href=7aline" na7>
572 /a>               7case 77q" class="sref">am_hreq /a>,  a f);n * sizeof( a href=6+code6x7amlueL5637>
573 /a>               7     77                  a hidueL613" classx"+cIO_a> IS href="fsxfcopsP_GET84536 /a>        if ( XFLAGSe=filp" class="sre4 /f ( XFLAGSe=filphref9ef="+code=ops" cl4if ( a href=7amlueL5647>
574 /a>               7     7              elseef="+code=ops" cl4if ( a href=7amlueL5657>
575 /a>               7     7                   a hidueL613" classx"+cIO_a> IS href="fsxfcopsP_GETf="+c= ~36 /a>        if ( XFLAGSe=filp" class="sre4 /f ( XFLAGSe=filphref9ef="+code=ops" cl4if ( a href=7amlueL5667>
576 /a>               7     77ode=copy_from_user" class="sref"f);n * sizeof( a href=6+code6x7amlueL5677>
577 /a>               7     77:n IS href="fsxfcopsP_GET84536 /a>        if ( XFLAGSf="+codea href="+6ode=EXFLAGSf="+href9ef="+code=ops" cl4if ( a href=7amlueL5587>
578 /a>               7case 77  a href="+coelseef="+code=ops" cl4if ( a href=7amlueL5597>
579 /a>               7     77ef="fs/xfs/xfs_ioctl.idueL613" classx"+cIO_a> IS href="fsxfcopsP_GETf="+c= ~36 /a>        if ( XFLAGSf="+codea href="+6ode=EXFLAGSf="+href9ef="+code=ops" cl4if ( a href=7amlueL5807>
580 /a>               7     78ode=am_hreq" class="sref">am_href);n * sizeof( a href=6+code6x7amlueL5817>
581 /a>               7     7          break;n IS href="fsxfcopsP_GET84536 /a>        if ( XFLAGSNO/xfM codea href="+6ode=EXFLAGSNO/xfM href9ef="+code=ops" cl4if ( a href=7aline" na7>
582 /a>               7     782 a href="+coelseef="+code=ops" cl4if ( a href=7amlueL5837>
583 /a>               7     78                  a hidueL613" classx"+cIO_a> IS href="fsxfcopsP_GETf="+c= ~36 /a>        if ( XFLAGSNO/xfM codea href="+6ode=EXFLAGSNO/xfM href9ef="+code=ops" cl4if ( a href=7amlueL5647>
584 /a>               7     7              class="sref">am_href);n * sizeof( a href=6+code6x7amlueL5657>
585 /a>               7     78                  a hidueL613" classx"+cIO_a> IS href="fsxfcopsP_GET84536 /a>        if ( XFLAGSNODUMPcodea href="+6ode=EXFLAGSNODUMPhref9ef="+code=ops" cl4if ( a href=7amlueL5667>
586 /a>               7     78q" class="sreelseef="+code=ops" cl4if ( a href=7amlueL5677>
587 /a>               7     7  break;n IS href="fsxfcopsP_GETf="+c= ~36 /a>        if ( XFLAGSNODUMPcodea href="+6ode=EXFLAGSNODUMPhref9ef="+code=ops" cl4if ( a href=7amlueL5587>
588 /a>               7case 78ioctl.c#L539" idueL539" class="line7amlueL5897>
589 /a>               7     78q" class="sre class="sref">error /ax"+cIO_a> IS href="fsxfcopsP_GE9ef="+code=ops" cl4if ( a href=7amlueL5907>
590 /a>               7     7  if (c#L612" idueL612" class="line" 7amlueL5917>
591 /a>               7     79ctl.c#L539" idueL539" class="line" 7amlueL5927>
592 /a>               7     79error" class="sref">sa> intn
593 /a>               7     7      " class="sref">xfs_di2lx"+cIO_a> IS href="fsxfs_di2lx"+cIOclass#L523" idueL523" class="line" 7amlueL5947>
594 /a>               7     7              ="sref">__user /a>e=c16trmulti_handlereq/a>e=c16tr          ="sref">__user dspacl" class="sref">xfds_ioc_spe /t /a> * sizeof( a href=6+code6x7amlueL5757>
595 /a>               7     79kfree="+c">opmlueLfilp" class="stf="7amlueL5867>
596 /a>               7     79href="+code=oref="+code=cmd" multi_handlereqf);n
597 /a>               7defau7961" class="line"|nxfds_ioc_spe /ef="+cod6=arg" class="de=EDIFLAGS_ADMIN6 clas634 /a>     f ( DIFLAGS_ADMIN6 cpe /t /a> * sizeof( a href=6+code6x7amlueL5897>
599 /a>               7}n
600 /a>        }nam_hredspacl" class="sref">xfds_ioc_spe /ef="+cod6=arg" class="de=EDIFLAGSe=filp" class="sre4 /f ( DIFLAGSe=filppe /t /a> * sizeof( a href=6+code6x8a1lueL6008>
591 /a>               8/xfs_80         break;n
592 /a>               8ref="80q" class="sref">am_hreq /a>,  a dspacl" class="sref">xfds_ioc_spe /ef="+cod6=arg" class="de=EDIFLAGSf="+codea href="+6ode=EDIFLAGSf="+pe /t /a> * sizeof( a href=6+code6x8a3lueL6008>
593 /a>               8 a hr80                  a hidueL613" classf);n
594 /a>               8/xfs_80             class="sref">am_hredspacl" class="sref">xfds_ioc_spe /ef="+cod6=arg" class="de=EDIFLAGSNO/xfM codea href="+6ode=EDIFLAGSNO/xfM pe /t /a> * sizeof( a href=6+code6x8a5lueL6008>
595 /a>               8"+cod80                  a hidueL613" classf);n
596 /a>               8out_k80ode=copy_from_user" class="sref"dspacl" class="sref">xfds_ioc_spe /ef="+cod6=arg" class="de=EDIFLAGSNODUMPcodea href="+6ode=EDIFLAGSNODUMPpe /t /a> * sizeof( a href=6+code6x8a7lueL6008>
597 /a>               8"+cod80:n
598 /a>               8out_d80  a href="+co class="sref">error /af);n
599 /a>               8"+cod80  a hc#L612" idueL612" class="line" 8amlueL6108>
610 /a>        return 8 a hr81ctl.c#L571" idueL571" class="line" 8amlueL6118>
611 /a>}n
612 /a>nxfs_c="_fsgetx/xfs_a> IS href="fsxfs_c="_fsgetx/xfsclass#L523" idueL523" class="line" 8amlueL6038>
613 /a>intnxfs_cn
54trmulti_handlereq_t /cod54trnarg /a>)n
614 /a> a href="+code=8fs_io81              copsP_
615 /a>        struct 8a hre8="+code=xfs_inref="+code=__user" class="sref">__user /a> * a href="+code=arg" class="sref">arg /a>)n
616 /a>        struct 8a hre8="+cod="+c">opmlueLfilp" class="stf="8amlueL6078>
617 /a>        struct 8a hre81:n
618 /a>        int    8     81ioctl.c#L539" idueL539" class="line8amlueL6198>
619 /a>        unsigne8 int 819" class="sre" class="sref">memsermulti_handlereqmemserclassss="sref">ops /a>[ afa_a> IS href="fsfactl., 0, op_attrstructlmulti_handlereqfsx/xfs_a> IS href="fsfsx/xfsn
620 /a>         a href8"+cod82ctl.c#L571" idueL571" class="line" 8fs_ioc4a 8ref="+carg /a>)nfa_a> IS href="fsfactl.sref">ops /a>,  fsx_x"+cIO_a> IS href="fsfsx_x"+cIOctl.e"sidueL613" classclasip2x"+cIO_a> IS href="fsxfs_ip2x"+cIOclassref">arg /a>)nops /a>,  fsx_extop_a_a> IS href="fsfsx_extop_actl.e"sidueL613" classsref="fs/xfs/xfs_ioctl.>        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_extop_a_a> IS href="fsds_extop_ape /eflt;flt;sidueL613" classsref="fs/xfs/xfs_ioctl.>        6f ( a href="mc>;  a href="+code=i"mc>; ctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl.sref">ops /a>,  sb_blocklohref="fs/xfs/xfssb_blocklohctl.9ef="+code=ops" cl4if ( a href=8href="+co8e=PTR_ERR" class="sre   8    *82             ="sref">__user fa_a> IS href="fsfactl.sref">ops /a>,  fsx_projihref="fs/xfs/xfsfsx_projihctl.e"sidueL613" classclasget_projihref="fs/xfs/xfsclasget_projihclassref">arg /a>)nnco8aml /a>);8 IS href="fs/xfsclasc.c#L572" idueL572" class="line" 8rror /a>;8csref="fs/xfs/xfs_ioctl.>        6f ( a href="afref="fs/xfs/xfs_i"afrclasc.c#L572" idueL572" class="line" 8rmlueL6188l.c#L8">
528 /a>        8a hr682 href="+code=ATTR_OP_/xfs/xfsser" class="sref">csref="fs/xfs/xfs_ioctl.>        6f ( a href="afref="fs/xfs/xfs_i"afrclas>        6f ( a href=/a>);n__user fa_a> IS href="fsfactl.sref">ops /a>,  fsx_nn tostO_a> IS href="fsfsx_nn tostOctl.e"sidueL613" classsref="fs/xfs/xfs_ioctl.>        6f ( a href="afref="fs/xfs/xfs_i"afrclas>        6f ( a href=/abyte(n
535 /a>               8retur83         break;n__user fa_a> IS href="fsfactl.sref">ops /a>,  fsx_nn tostO_a> IS href="fsfsx_nn tostOctl.e"sidueL613" classsref="fs/xfs/xfs_ioctl.>        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_ann tostO_a> IS href="fsds_ann tostOctl.9ef="+code=ops" cl4if ( a href=8lcode=cop8r /a>(& a href="+cod8=am_h83                  a h}xelseef="+code=ops" cl4if ( a href=8lref="+co8s       a href="+cnode /8>))n<83                  a href="+co="sref">__user fa_a> IS href="fsfactl.sref">ops /a>,  fsx_nn tostO_a> IS href="fsfsx_nn tostOctl.e"s19ef="+code=ops" cl4if ( a href=8s/xfs/xfs8ioctl="line" namlueL543"8
54="83octl.c#L613" }xelse.c#L572" idueL572" class="line" 8y_from_us8r /a>(& a href="+cod8=am_h83 break;ncsref="fs/xfs/xfs_ioctl.>        6f ( a href="dctl.c#L480" idue="dcctl.sref">ops /a>,  =/a>);n               f_m=ef="8code=83:n__user fa_a> IS href="fsfactl.sref">ops /a>,  fsx_nn tostO_a> IS href="fsfsx_nn tostOctl.e"sidueL613" classsref="fs/xfs/xfs_ioctl.>        6f ( a href="hctl.c#L480" idue="dcctl.sref">ops /a>,  =/abyte
538 /a>n(n
BADFmp; a href="+cod8ADF_h83  a href="+code=ops" elseef="+code=ops" cl4if ( a href=8ss="sref"8am_xfsSREc="line" namlue8539">84 if ( a href="+code=ooooooooo="sref">__user fa_a> IS href="fsfactl.sref">ops /a>,  fsx_nn tostO_a> IS href="fsfsx_nn tostOctl.e"sidueL613" classsref="fs/xfs/xfs_ioctl.>        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_nn tostO_a> IS href="fsds_nn tostOctl.9ef="+code=ops" cl4if ( a href=8dueL502" 8lass="line
e" namlueL600">
600 /a8     8 q" class="sre" class="sref">xfs_iunlockmulti_handlereq_t /cunlockclassref">arg /a>)nam_hreopy_to_user /a>( a href="+code=am_hreq" class="sref">am_hreqzeof( a href="+code=xfs_fsss="sref">ops /a>[ afa_a> IS href="fsfactl., op_attrmulti_handlereqfa_a> IS href="fsfactl.l.c#L537" idueL537" class="line" 8ONBLOCKa>8E2BIG /a>a>);n               f8521 /84href="+code=oRROR" c19ef="+code=ops" cl4if ( a href=8ef="fs/xf8/xfs_iocxfs_ioctl.c#L5618 idue84ctl.cc#L612" idueL612" class="line" 8s_lass=SY8dle /a>(n8n,  a 6sa> intnxfs_set_di"+cIO_a> IS href="fsxfs_set_di"+cIOclass#L523" idueL523" class="line" 8xfs_lass=8ERle /a>(narg /a>)n
552 /a>         a href8"+cod85q" class="sreref="+code=cmd" class="sref">cmd /a>,n IS href="fsxfcopsP_GEc#L537" idueL537" class="line" 8amlueL5538>
553 /a>        if ( a 8ref="85a hrec#L572" idueL572" class="line" 8amlueL5548>
554 /a>               8 a hr854ode=i" classref="+code=cmd" class="sref">cmd /a>,nxfds_ioc_spe /9ef="+code=ops" cl4if ( a href=8"NBLOCKa>8>
555 /a>               8goto 85ode=copy_from_user" class="sref">co8""fs/xfs/8>
556 /a>        }n8amlueL5578>
557 /a>nkfree /adspacl" class="sref">xfds_ioc_spe /e=r" class="sref">csref="fs/xfs/xfs_ioctl.>        6f ( a href="dref="fs/xfs/xfs="hctl.sref">ops /a>,  ds_acl" class="sref">xfds_ioc_spe /ef="+cod6=arg" class="de=EDIFLAGSPREALcla" class="sre4 /f ( DIFLAGSPREALclan
558 /a>         a href8"+cod85octl.c#L613" idueL613" class="lix"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGS_ADMIN6 clas634 /a>     f ( XFLAGS_ADMIN6 chrefc#L537" idueL537" class="line" 8a_attr_mu8>
559 /a>        if (! a8href=85ef="fs/xfs/xfs_ioctl.idueL613" classds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGS_ADMIN6 clas634 /a>     f ( DIFLAGS_ADMIN6 cpe /c#L538" idueL538" class="line" 8amlueL5608>
560 /a>               8goto 86ode=am_hreq" class="sref">am_hrex"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSe=filp" class="sre4 /f ( XFLAGSe=filphrefc#L537" idueL537" class="line" 8amlueL5618>
561 /a>nxfds_ioc_spe /e84536 /a>        if ( DIFLAGSe=filp" class="sre4 /f ( DIFLAGSe=filppe /c#L538" idueL538" class="line" 8aline" na8>
562 /a>         a href8"+cod86q" class="sref">am_hreq /a>,  a x"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSf="+codea href="+6ode=EXFLAGSf="+hrefc#L537" idueL537" class="line" 8amlueL5538>
563 /a>        for ( a8href=86                  a hidueL613" classds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGSf="+codea href="+6ode=EDIFLAGSf="+pe /c#L538" idueL538" class="line" 8amlueL5548>
564 /a>               8 a hr86             class="sref">am_hrex"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSNO/xfM codea href="+6ode=EXFLAGSNO/xfM hrefc#L537" idueL537" class="line" 8aNBLOCKa>8>
565 /a>               8     86                  a hidueL613" classds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGSNO/xfM codea href="+6ode=EDIFLAGSNO/xfM pe /c#L538" idueL538" class="line" 8a"fs/xfs/8>
566 /a>               8if ( 86ode=copy_from_user" class="sref"x"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSNODUMPcodea href="+6ode=EXFLAGSNODUMPhrefc#L537" idueL537" class="line" 8amlueL5578>
567 /a>               8     86:nxfds_ioc_spe /e84536 /a>        if ( DIFLAGSNODUMPcodea href="+6ode=EDIFLAGSNODUMPpe /c#L538" idueL538" class="line" 8amlueL5588>
568 /a>               8if ( 86octl.c#L613" idueL613" class="lix"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSPROJINHERIn
569 /a>               8     86ef="fs/xfs/xfs_ioctl.idueL613" classds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGSPROJINHERIn
570 /a>nam_hrex"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSNODEFRAGcodea href="+6ode=EXFLAGSNODEFRAGhrefc#L537" idueL537" class="line" 8amlueL5618>
571 /a>               8switc87         break;nxfds_ioc_spe /e84536 /a>        if ( DIFLAGSNODEFRAGcodea href="+6ode=EDIFLAGSNODEFRAGpe /c#L538" idueL538" class="line" 8aline" na8>
572 /a>               8case 87q" class="sref">am_hreq /a>,  a x"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSFILESTREAMcodea href="+6ode=EXFLAGSFILESTREAMhrefc#L537" idueL537" class="line" 8amlueL5538>
573 /a>               8     87                  a hidueL613" classds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGSFILESTREAMcodea href="+6ode=EDIFLAGSFILESTREAMpe /c#L538" idueL538" class="line" 8amlueL5548>
574 /a>               8     87             class="sref">am_hreS_ISDI>( a href="+codeS_ISDI>classref">arg /a>)n        6f ( a href="dref="fs/xfs/xfs="hctl.sref">ops /a>,  ds_md54multi_handlereqds_md54ctl.l..c#L572" idueL572" class="line" 8amlueL5658>
575 /a>               8     8                   a hf">am_hreq /a>,  a x"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSRTINHERIn
576 /a>               8     87 break;nxfds_ioc_spe /e84536 /a>        if ( DIFLAGSRTINHERIn
577 /a>               8     87:nam_hrex"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSNOSYMLINKef="+code=MAXNAMde" XFLAGSNOSYMLINKehrefc#L537" idueL537" class="line" 8amlueL5588>
578 /a>               8case 87  a href="+code=ops" class="sidueL613" classds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGSNOSYMLINKef="+code=MAXNAMde" DIFLAGSNOSYMLINKepe /c#L538" idueL538" class="line" 8a_attr_mu8>
579 /a>               8     87ef="fs/xfs/xfs_ioctl.class="sref">am_hrex"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSEXTSZINHERIn
580 /a>               8     88 if ( a href="+code=ooooooooo="sref">__user ds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGSEXTSZINHERIn
581 /a>               8     8          brea}xelse.class="sref">am_hreS_ISREGcodea href="+6oS_ISREGclassref">arg /a>)n        6f ( a href="dref="fs/xfs/xfs="hctl.sref">ops /a>,  ds_md54multi_handlereqds_md54ctl.l..c#L572" idueL572" class="line" 8aline" na8>
582 /a>               8     88  a href="+code=ops" f">am_hreq /a>,  a x"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSREALxfM codea href="+6ode=EXFLAGSREALxfM hrefc#L537" idueL537" class="line" 8amlueL5538>
583 /a>               8     88                  a h     a hidueL613" classds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGSREALxfM codea href="+6ode=EDIFLAGSREALxfM pe /c#L538" idueL538" class="line" 8amlueL5548>
584 /a>               8     88                  a hclass="sref">am_hrex"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSEXTSIZ codea href="+6ode=EXFLAGSEXTSIZ hrefc#L537" idueL537" class="line" 8amlueL5658>
585 /a>               8     88                  a hoooooooo="sref">__user ds_acl" class="sref">xfds_ioc_spe /e84536 /a>        if ( DIFLAGSEXTSIZ codea href="+6ode=EDIFLAGSEXTSIZ pe /c#L538" idueL538" class="line" 8a"fs/xfs/8>
586 /a>               8     88q" class="srec#L612" idueL612" class="line" 8amlueL5678>
587 /a>               8     8861" class="line"|nops /a>,  ds_acl" class="sref">xfds_ioc_spe /e4536 /a>        idspacl" class="sref">xfds_ioc_spe /9ef="+code=ops" cl4if ( a href=8amlueL5898>
589 /a>               8     88  a hc#L612" idueL612" class="line" 8amlueL5908>
590 /a>               8     89ctl.c#L571" idueL571" class="line" 8amlueL5918>
591 /a>               8     89ctl.c_hreq /a>,  a 6sa> intnxfs_diioc_sam_hlinuxmulti_handlereq_t /diioc_sam_hlinuxclass#L523" idueL523" class="line" 8amlueL5838>
593 /a>               8     89             structlmulti_handlereq_t /cod54multi_handlereq_t /cod54        breasref">arg /a>)n
594 /a>               8     89="+co="+c">opmlueLfilp" class="stf="8amlueL5758>
595 /a>               8     895            structlmulti_handlereqcod54multi_handlereqcod54        breabreasref">arg /a>)n        iV ( cmulti_handlereqV ( cclassref">arg /a>)n
596 /a>               8     89href="+code=oref="+code=cmd" c#L613" multi_handlereqx"+cIO_a> IS href="fsxfcopsP_GET"smulti_handlereqxlasip2x"+cIO_a> IS href="fsxfs_ip2x"+cIOclassref">arg /a>)n
597 /a>               8defau8961" class="line"|n IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGS_ADMIN6 clas634 /a>     f ( XFLAGS_ADMIN6 chrefc#L537" idueL537" class="line" 8amlueL5898>
599 /a>               8}n        6f ( a href=">);n
600 /a>        }n
591 /a>               9/xfs_90         break;n        6f ( a href=">);n        iSS_ADMIN6 clas634 /a>     SS_ADMIN6 cpe /c#L538" idueL538" class="line" 9a2lueL6009>
592 /a>               9ref="90q" class="sref">am_hreq /a>,  a x"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSe=filp" class="sre4 /f ( XFLAGSe=filphrefc#L537" idueL537" class="line" 9a3lueL6009>
593 /a>               9 a hr90                  a hidueL613" classsod54multi_handlereqcod54    >        6f ( a href=">);n
594 /a>               9/xfs_90             elseef="+code=ops" cl4if ( a href=9a5lueL6009>
595 /a>               9"+cod90                  a hidueL613" classsod54multi_handlereqcod54    >        6f ( a href=">);n        iSSe=filp" class="sre4 /SSe=filppe /c#L538" idueL538" class="line" 9a6lueL6009>
596 /a>               9out_k90ode=copy_from_user" class="sref"x"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSf="+codea href="+6ode=EXFLAGSf="+hrefc#L537" idueL537" class="line" 9a7lueL6009>
597 /a>               9"+cod90:n        6f ( a href=">);n
598 /a>               9out_d90  a href="+coelseef="+code=ops" cl4if ( a href=9a9lueL6009>
599 /a>               9"+cod90ef="fs/xfs/xfs_ioctl.idueL613" classsod54multi_handlereqcod54    >        6f ( a href=">);n        iSSf="+codea href="+6oSSf="+pe /c#L538" idueL538" class="line" 9amlueL6109>
610 /a>        return 9 a hr91ode=am_hreq" class="sref">am_hrex"+cIO_a> IS href="fsxfcopsP_GETf="+c536 /a>        if ( XFLAGSNO/xfM codea href="+6ode=EXFLAGSNO/xfM hrefc#L537" idueL537" class="line" 9amlueL6119>
611 /a>}n        6f ( a href=">);n
612 /a>n
613 /a>intn        6f ( a href=">);n        iSSNO/xfM codea href="+6oSSNO/xfM pe /c#L538" idueL538" class="line" 9a4lueL6009>
614 /a> a href="+code=9fs_io91     c#L612" idueL612" class="line" 9a5lueL6009>
615 /a>        struct 9a hre91ode=copy_from_user" class="sref">co9amlueL6169>
616 /a>        struct 9a hre9="+cod#def   536 /a>        is XSPROJIp" class="sre4 /s XSPROJIp          1opy_from_user" class="sref">co9a7lueL6009>
617 /a>        struct 9a hre91:n        is XSEXTSIZ codea href="+6os XSEXTSIZ          2opy_from_user" class="sref">co9a8lueL6009>
618 /a>        int    9     91ioctl#def   536 /a>        is XSXFLAGef="+code=MAXNAMs XSXFLAGe          4opy_from_user" class="sref">co9a9lueL6009>
619 /a>        unsigne9 int 919" cl#def   536 /a>        is XSNONBclasf="+code=MAXNAMs XSNONBclas        8opy_from_user" class="sref">co9amlueL6209>
620 /a>         a href9"+cod92ctl.c#L571" idueL571" class="line" 9fs_ioc4a 9ref="+cxfs_c="tl_set/xfs_a> IS href="fsxfs_c="tl_set/xfsclass#L523" idueL523" class="line" 9amlueL6039P_GET"s19ef="+code=ops" 9l4if 9 a href="+codemulti_handlereq_t /cod54trmulti_handlereq_t /cod54trnarg /a>)narg /a>)n IS href="fsfactl.,#L523" idueL523" class="line" 9h5lueL6009xfs/12 /a>n);9opmlueLfilp" class="stf="9rror /a>;9;  a href="+code= clamc>;         breasref">arg /a>)n;  a href="+code=i"mc>; ctl.c#L538" idueL538" class="line" 9rmlueL6189l.c#L8">
528 /a>        9a hr692 href="+code=structlmulti_handlereq clatranO_a> IS href="fsxfs_tranO        breasref">arg /a>)n);n);narg /a>)n
535 /a>               9retur93         breastructlmulti_handlereq_t /dquo  a href="+code= cladquo         breasref">arg /a>)narg /a>)n(& a href="+cod9=am_h93              copsP_))n<93     #L538" idueL538" class="line" 9l5lueL6009ioctl="line" namlueL543"9
54="93octl.c#L613" ref">arg /a>)n IS href="fstrace_xfs_c="tl_set/xfsclassref">arg /a>)n(& a href="+cod9=am_h93ctl.c#L547" idueL547" class="line" 9s/xfs_4 /9>               f_m=ef="9code=93:nam_hrem6user" crohref="moctl.>        6f ( a hrefm_>);n
538 /a>nerror /ade=EERRO>( a href="+codede=EERRO>classref">arg /a>)n
BADFmp; a href="+cod9ADF_h93  a href="+coclass="sref">am_hrede=EFORCED_SHUTDOWN( a href="+codede=EFORCED_SHUTDOWNclassref">arg /a>)n94 if ( a href="+code=o class="sref">error /ade=EERRO>( a href="+codede=EERRO>classref">arg /a>)n
e" namlueL600">
600 /a9     9 q" class="sre"flow check */ /spaion9s="line" 9las       a href="+cO_ND9LAYa>94ctl.c"flow check */ /spaion="+code=o* Disallow 32bit projectlids when projih32bit fealase is not enabled.ttl. un="fsten extents are en"+cod.">9sref="+co9xfs_ioctl.c#L561" idueL591" cl94     "flow check */ /spaion="+code=o*fttl. un="fsten extents are en"+cod.">9ONBLOCKa>9arg /a>)n        6f ( a hreffsx_projihref="fs/xfs/xfsfsx_projihctl.e    ormulti_handlereq/a>e=c16trmulti_handlereq/a>e=c16tr    )-1)ef="+cf="+c="fsten extents are en"+cod.">9O_from_us9fs_4 /a>               f9521 /94 break;nops /a>[ asref="fs/xfs/xfs_ioctl.>        6f ( a href="mc>;  a href="+code=i"mc>; ctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl..c#L537" idueL537" class="line" 9s/xfs_4 /9/xfs_iocxfs_ioctl.c#L5619 idue94:nerror /ade=EERRO>( a href="+codede=EERRO>classref">arg /a>)n(n9n9fs/xf"fs/9fs/xfs_iocxfs_ioctl.c#L591" id95 href"flow check */ /spaion="+code=o* If disk quo as is on, we make sase that the dquo s do exist on disk,ttl. un="fsten extents are en"+cod.">9fueL502" 9ERle /a>(n9fmlueL5399>
552 /a>         a href9"+cod95q" cl"flow check */ /spaion="+code=o* is messy. We don't case to take as cadlock to look at the ids cl. un="fsten extents are en"+cod.">9f="line" 9>
553 /a>        if ( a 9ref="95ctl.c"flow check */ /spaion="+code=o* in cod54 here, because we can't hold iddacross the tranO_reeq"ve.ttl. un="fsten extents are en"+cod.">9amlueL5549>
554 /a>               9 a hr95     "flow check */ /spaion="+code=o* If the IDs do change befose we take the ilock, we'se coveredttl. un="fsten extents are en"+cod.">9aNBLOCKa>9>
555 /a>               9goto 95ode=c"flow check */ /spaion="+code=o* because the i_*dquo  fields will get updatqd anyway.ttl. un="fsten extents are en"+cod.">9a_from_us9>
556 /a>        }n9amlueL5579>
557 /a>nam_href ( cS_QUOTA_ON( a href="+codede=EcS_QUOTA_ONclassref">arg /a>)n
558 /a>         a href9"+cod95  a href="+code=ops" fs_ioctl.c#L561cd54multi_handlereqcd54    T"smulti_handlereqxlasqm_vop_dqalloc a href="+code= claqm_vop_dqallocclassref">arg /a>)nops /a>,  ds_uihref="fs/xfs/xfsds_uihctl.,#L523" idueL523" class="line" 9a_attr_mu9>
559 /a>        if (! a9href=95ef="fs/xfs/xfs_ioctl..........................s/xfs/x6s_ioc65sref="fs/xfs/xfs_ioctl.>        6f ( a href="dref="fs/xfs/xfs="hctl.sref">ops /a>,  ds_gihref="fs/xfs/xfsds_gihctl.,o="sref">__user fa_a> IS href="fsfactl.>        6f ( a hreffsx_projihref="fs/xfs/xfsfsx_projihctl.,#L523" idueL523" class="line" 9amlueL5609>
560 /a>               9goto 96 if ( a href="+code=ooooooooo.................s/xfs/x6s_ioc65de=EQMOPT_PQUOTA( a href="+codede=EQMOPT_PQUOTActl.,oss="sref">ops /a>[ audqref="fs/xfs/xfs_udqrctl.,o="sref">__user NULa href="6_MAX" cNULactl.,oss="sref">ops /a>[ apdqref="fs/xfs/xfs_pdqrctl.)c#L538" idueL538" class="line" 9amlueL5619>
561 /a>nam_hreop54multi_handlereqcd54    c#L537" idueL537" class="line" 9aline" na9>
562 /a>         a href9"+cod96  a href="+code=ops" class="s class="sref">error /acd54multi_handlereqcd54    c#L538" idueL538" class="line" 9amlueL5539>
563 /a>        for ( a9href=96             c#L612" idueL612" class="line" 9amlueL5549>
564 /a>               9 a hr96     #L538" idueL538" class="line" 9aNBLOCKa>9>
565 /a>               9     96             "flow check */ /spaion9a"fs/xfs/9>
566 /a>               9if ( 966 hre"flow check */ /spaion="+code=o* For the other /xfsibutes, we acquire the iod54 lock andttl. un="fsten extents are en"+cod.">9amlueL5579>
567 /a>               9     96:n9amlueL5589>
568 /a>               9if ( 96octl."flow check */ /spaion="+code=o*fttl. un="fsten extents are en"+cod.">9a_attr_mu9>
569 /a>               9     969" class="sre" class="sref">tref="fs/xfs/xfs_tpctl.T"smulti_handlereqxlastranO_alloc a href="+code= clatranO_allocclassref">arg /a>)n
570 /a>narg /a>)nam_href ( cCHANGE_LOGSREef="+code=MAXNAMde" cCHANGE_LOGSREeclassref">arg /a>)n
571 /a>               9switc97         breaclass="sref">am_hreop54multi_handlereqcd54    c#L537" idueL537" class="line" 9aline" na9>
572 /a>               9case 97  a href="+code=ops" goto s="sref">am_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 9amlueL5539>
573 /a>               9     97ctl.c#L534" idueL534" class="line" 9amlueL5549>
574 /a>               9     97             multi_handlereqlock">);n);nam_href ( cclas_EXCa href="6_MAX" cf ( cclas_EXCa    c#L538" idueL538" class="line" 9aNBLOCKa>9>
575 /a>               9     97octl.c#L613" ref">arg /a>)narg /a>)n);n);n
576 /a>               9     97ctl.c#L547" idueL547" class="line" 9amlueL5579>
577 /a>               9     97:n9amlueL5589>
578 /a>               9case 97octl."flow check */ /spaion="+code=o* CAP_FOWNER overrides the following reefsictions:ttl. un="fsten extents are en"+cod.">9a_attr_mu9>
579 /a>               9     97ef="f"flow check */ /spaion="+code=o*ttl. un="fsten extents are en"+cod.">9amlueL5809>
580 /a>               9     98 href"flow check */ /spaion="+code=o* The req" ID of the calling process must be equalttl. un="fsten extents are en"+cod.">9amlueL5619>
581 /a>               9     98     "flow check */ /spaion="+code=o* to the file ownq" ID, except in cases where thettl. un="fsten extents are en"+cod.">9aline" na9>
582 /a>               9     98q" cl"flow check */ /spaion="+code=o* CAP_FSETID capability is applicable.ttl. un="fsten extents are en"+cod.">9amlueL5539>
583 /a>               9     98ctl.c"flow check */ /spaion="+code=o*fttl. un="fsten extents are en"+cod.">9amlueL5549>
584 /a>               9     98             class="sref">am_hreourrpai_fsuihref="fs/xfs/xfsourrpai_fsuihclass) !"sidueL613" classsref="fs/xfs/xfs_ioctl.>        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_uihref="fs/xfs/xfsds_uihctl.ef="+cf="+co!multi_handlereqcapabl4multi_handlereqcapabl4classref">arg /a>)n
585 /a>               9     98                  a hfs_ioctl.c#L561cd54multi_handlereqcd54    T"smulti_handlereqde=EERRO>( a href="+codede=EERRO>classref">arg /a>)n
586 /a>               9     98 break;nam_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 9amlueL5679>
587 /a>               9     98:n
588 /a>               9case 98ioctl.c#L539" idueL539" class="line9amlueL5899>
589 /a>               9     989" class="sre"flow check */ /spaion9amlueL5909>
590 /a>               9     99 href"flow check */ /spaion="+code=o* Do o quo a reeq"vation only claprojih is actually going to change.ttl. un="fsten extents are en"+cod.">9amlueL5919>
591 /a>               9     99     "flow check */ /spaion="+code=o*fttl. un="fsten extents are en"+cod.">9amlueL5929>
592 /a>               9     99q" class="sref">am_hreq /a>,  a maskmulti_handlereqmaskhrefef="+cod6=arg" class="s XSPROJIp" class="sre4 /s XSPROJIp    )ec#L572" idueL572" class="line" 9amlueL5839>
593 /a>               9     99                  a hclass="sref">am_href ( cS_QUOTA_RUNNINGcodea href="+6ode=EcS_QUOTA_RUNNINGclassref">arg /a>)n
594 /a>               9     99                  a href=s="sref">am_href ( cS_PQUOTA_ON( a href="+codede=EcS_PQUOTA_ONclassref">arg /a>)n
595 /a>               9     99                  a href=s="sref">am_hreclasget_projihref="fs/xfs/xfsclasget_projihclassref">arg /a>)n IS href="fsfactl.>        6f ( a hreffsx_projihref="fs/xfs/xfsfsx_projihctl.)ec#L572" idueL572" class="line" 9a"fs/xfs/9>
596 /a>               9     99 break;narg /a>)n
597 /a>               9defau99:n__user cd54multi_handlereqcd54    T"smulti_handlereqxlasqm_vop_chown_reeq"ve a href="+code= claqm_vop_chown_reeq"veclassref">arg /a>)narg /a>)n__user NULa href="6_MAX" cNULactl.,#L538" idueL538" class="line" 9amlueL5589>
598 /a>               9     99  a href="+code=ops" class="se=ops" classssssssssssssref">ops /a>[ apdqref="fs/xfs/xfs_pdqrctl.,o="sref">__user capabl4multi_handlereqcapabl4classref">arg /a>)n
599 /a>               9}nops /a>[ ade=EQMOPT_FORCESREef="+code=MAXNAMde" QMOPT_FORCESREef="fs: 0)c#L538" idueL538" class="line" 10amlueL60010amlu9 /a>               10aml>10amf="fs/xfs/xfs_ioctl.class="sclass="sref">am_hreop54multi_handlereqcd54    csssssssrflow check */ /spaion               10a
5>10a         break;nam_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 10a2lueL60010a
592 /a>               10a
5>10a  a href="+code=ops" c#L612" idueL612" class="line" 10a3lueL60010a
593 /a>               10a
5>10a             c#L612" idueL612" class="line" 10a4lueL60010a
594 /a>               10a
5>10a     #L538" idueL538" class="line" 10a5lueL60010a
595 /a>               10a
5>10a             clasm_hreq /a>,  a maskmulti_handlereqmaskhrefef="+cod6=arg" class="s XSEXTSIZ codea href="+6os XSEXTSIZ     )ec#L572" idueL572" class="line" 10a6lueL60010a
596 /a>               10a
5>10a break;n10a7lueL60010a
597 /a>               10a
5>10a:n10a8lueL60010a
598 /a>               10a
5>10aoctl."flow check */ /spaion="+code=ooooooooo*fttl. un="fsten extents are en"+cod.">10a9lueL60010a
599 /a>               10a
5>10aef="fs/xfs/xfs_ioctl.class="sref">am_hresref="fs/xfs/xfs_ioctl.>        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_nn tostO_a> IS href="fsds_nn tostOctl.ef="+cf="+c#L572" idueL572" class="line" 101mlueL60010>
610 /a>        return 10>
6>10>
        break;narg /a>)n        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_n top_a_a> IS href="fsds_n top_actl.eflt;flt;xfs_ioctl.c#L561m6user" crohref="moctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl.sref">ops /a>,  sb_blockloeof( a href="+cosb_blockloectl.) !"#L572" idueL572" class="line" 1011lueL60010>
611 /a>}n IS href="fsfactl.>        6f ( a hreffsx_n top_a_a> IS href="fsfsx_n top_a    )..c#L572" idueL572" class="line" 10>2lueL60010>
612 /a>n( a href="+codede=EERRO>classref">arg /a>)n1013lueL60010>
613 /a>intnam_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 1014lueL60010>
614 /a> a href="+code=10>
6>10>                  a hc#L612" idueL612" class="line" 1015lueL60010>
615 /a>        struct 10>
6>10>ode=copy_from_user" class="sref">co10>6lueL60010>
616 /a>        struct 10>
6>10> break;n1017lueL60010>
617 /a>        struct 10>
6>10>:n1018lueL60010>
618 /a>        int    10>
6>10>octl."flow check */ /spaion="+code=ooooooooo* op_a,.clase  at all. It must also be smaller than thettl. un="fsten extents are en"+cod.">10>9lueL60010>
619 /a>        unsigne10>
6>10>ef="f"flow check */ /spaion="+code=ooooooooo* maximum n tost op_a supportqd by the filesystem.ttl. un="fsten extents are en"+cod.">102mlueL60010>
620 /a>         a href10>
6>10>
f="f"flow check */ /spaion="+code=ooooooooo*ttl. un="fsten extents are en"+cod.">1021lueL60010ref="+c1022lueL60010href="fs/xfs/xfs_ioctl.c10hre>10>q" cl"flow check */ /spaion="+code=ooooooooo* half the op_a of the AGs in the filesystem so alignspaittl. un="fsten extents are en"+cod.">1023lueL60010P_GET"s19ef="+code=ops" 10P_G>10>ctl.c"flow check */ /spaion="+code=ooooooooo* doesn't result in n tostO larger than an AG.ttl. un="fsten extents are en"+cod.">1024lueL60010e=PTR_ERR" class="sre   10e=P>10>     "flow check */ /spaion="+code=ooooooooo*fttl. un="fsten extents are en"+cod.">1025lueL60010xfs/12 /a>nam_hreq /a>,  a fa_a> IS href="fsfactl.>        6f ( a hreffsx_n top_a_a> IS href="fsfsx_n top_a     !"s0..c#L572" idueL572" class="line" 1026lueL60010ops /a>,  sp_a_a> IS href="fsop_a    c#L538" idueL538" class="line" 1027lueL60010__user clasfsblocktrmulti_handlereq_t /fsblocktrnam_hree top_a/fsbmulti_handlereqe top_a/fsb    c#L538" idueL538" class="line" 1028lueL60010l.c#L8">
528 /a>        10l.c>10>ioctl.c#L539" idueL539" class="line10>9lueL60010 >=  a href="+code=IN10 &g>10>ef="fs/xfs/xfs_ioctl.class="ss="sref">am_hree top_a/fsbmulti_handlereqe top_a/fsb    T"smulti_handlereqde=EB_TO_FSB( a href="+codede=EB_TO_FSBclassref">arg /a>)n__user fa_a> IS href="fsfactl.>        6f ( a hreffsx_n top_a_a> IS href="fsfsx_n top_a    )c#L538" idueL538" class="line" 103mlueL600104 /a>               i_m=104 />104 f="fs/xfs/xfs_ioctl.class="sclass="sref">am_hree top_a/fsbmulti_handlereqe top_a/fsb    T    os="sref">am_hreMAXEXTLEN( a href="+codeMAXEXTLEN    )ec#L572" idueL572" class="line" 1031lueL60010>
535 /a>               10>
5>104         break;n( a href="+codede=EERRO>classref">arg /a>)n104  a href="+code=ops" class="sssssssssgoto s="sref">am_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 1033lueL60010r /a>(& a href="+cod10r />104                  a h     a hc#L612" idueL612" class="line" 1034lueL60010s       a href="+cnode /10s  >104     #L538" idueL538" class="line" 1035lueL60010ioctl="line" namlueL543"10ioc>104                  a hooooooooclass="sref">am_href ( cS_REALxfM _INODE( a href="+codede=EcS_REALxfM _INODEclassref">arg /a>)n(& a href="+cod10r />104 break;narg /a>)n               f_m=ef="10>  >104:n__user fa_a> IS href="fsfactl.>        6f ( a hreffsx_x"+cIO_a> IS href="fsfsx_x"+cIOhrefef="+cod6=arg" class="f ( XFLAGSREALxfM codea href="+6ode=EXFLAGSREALxfM hrefc)..c#L572" idueL572" class="line" 1038lueL600108">
538 /a>n>104  a href="+code=ops" class="se=ops" cref">ops /a>,  sp_a_a> IS href="fsop_a    T"smulti_handlereqm6user" crohref="moctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl.sref">ops /a>,  sb_rn top_a_a> IS href="fssb_rn top_actl.eflt;flt;#L572" idueL572" class="line" 1039lueL600109">
BADFmp; a href="+cod109">>104ef="fs/xfs/xfs_ioctl.class="se=ops" classsssfs_ioctl.c#L561m6user" crohref="moctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl.sref">ops /a>,  sb_blockloeof( a href="+cosb_blockloectl.;#L572" idueL572" class="line" 104mlueL60010am_xfsSREc="line" namlue10am_>10am                 a h     a hcxelse.c#L572" idueL572" class="line" 1041lueL60010lass="line IS href="fsop_a    T"smulti_handlereqm6user" crohref="moctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl.sref">ops /a>,  sb_blockop_a_a> IS href="fssb_blockop_actl.;#L572" idueL572" class="line" 1042lueL60010>
e" namlueL600">
600 /a10>
e>10a  a href="+code=ops" class="sssssssssclass="sref">am_hree top_a/fsbmulti_handlereqe top_a/fsb    T    os="sref">am_hrem6user" crohref="moctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl.sref">ops /a>,  sb_agblocko_a> IS href="fssb_agblocko    T/ 2..c#L572" idueL572" class="line" 1043lueL60010las       a href="+cO_ND10las>10a                  a h     a hef="fs/xxxxxxxxxfs_ioctl.c#L561cd54multi_handlereqcd54    T"smulti_handlereqde=EERRO>( a href="+codede=EERRO>classref">arg /a>)n10a                  a href=====================goto s="sref">am_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 1045lueL60010               f10fs_>10a break;n10a61" class="line"|nam_hreq /a>,  a fa_a> IS href="fsfactl.>        6f ( a hreffsx_n top_a_a> IS href="fsfsx_n top_a     % os="sref">am_hresp_a_a> IS href="fsop_a    ..c#L572" idueL572" class="line" 1049lueL60010ti         a href="+c a>10ti >10aef="fs/xfs/xfs_ioctl.class="se=ops" cfs_ioctl.c#L561cd54multi_handlereqcd54    T"smulti_handlereqde=EERRO>( a href="+codede=EERRO>classref">arg /a>)n10fs a href="+code=ops" class="sssssssssgoto s="sref">am_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 1051lueL60010ERle /a>(n10f         break;n
552 /a>         a href10>
5>10f  a href="+code=ops" c#L612" idueL612" class="line" 1053lueL60010>
553 /a>        if ( a 10>
5>10f             c#L612" idueL612" class="line" 1054lueL60010>
554 /a>               10>
5>10f     #L538" idueL538" class="line" 1055lueL60010>
555 /a>               10>
5>10fode=copy_from_user" class="sref">co1056lueL60010>
556 /a>        }n
5>10fode=copy_from_user" class="sref"maskmulti_handlereqmaskhrefef="+cod6=arg" class="s XSXFLAGef="+code=MAXNAMs XSXFLAGe    .ec#L572" idueL572" class="line" 1057lueL60010>
557 /a>n1058lueL60010>
558 /a>         a href10>
5>10foctl."flow check */ /spaion="+code=ooooooooo* Can't change realtime f+cI claany n tostO ase allocatqd.ttl. un="fsten extents are en"+cod.">1059lueL60010>
559 /a>        if (! a10>
5>10fef="f"flow check */ /spaion="+code=ooooooooo*fttl. un="fsten extents are en"+cod.">106mlueL60010>
560 /a>               10>
5>10>
                 a hf">ass="sref">am_hresref="fs/xfs/xfs_ioctl.>        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_nn tostO_a> IS href="fsds_nn tostOctl.e||sidueL613" classsref="fs/xfs/xfs_ioctl.>        6f ( a href="helayed_blko_a> IS href="fs="helayed_blko    .ef="+cf="+c#L572" idueL572" class="line" 1061lueL60010>
561 /a>nam_href ( cS_REALxfM _INODE( a href="+codede=EcS_REALxfM _INODEclassref">arg /a>)n
562 /a>         a href10>
5>10>  a href="+code=ops" class="sref">__user fa_a> IS href="fsfactl.>        6f ( a hreffsx_x"+cIO_a> IS href="fsfsx_x"+cIOhrefef="+cod6=arg" class="f ( XFLAGSREALxfM codea href="+6ode=EXFLAGSREALxfM hrefc)ec#L572" idueL572" class="line" 1063lueL60010>
563 /a>        for ( a10>
5>10>                  a h     a hfs_ioctl.c#L561cd54multi_handlereqcd54    T"smulti_handlereqde=EERRO>( a href="+codede=EERRO>classref">arg /a>)n1064lueL60010>
564 /a>               10>
5>10>                  a href=====goto s="sref">am_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 1065lueL60010>
565 /a>               10>
5>10>                  a hc#L612" idueL612" class="line" 1066lueL60010>
566 /a>               10>
5>10>ctl.c#L547" idueL547" class="line" 10>7lueL60010>
567 /a>               10>
5>10>:n1068lueL60010>
568 /a>               10>
5>10>octl."flow check */ /spaion="+code=ooooooooo* If realtime f+cI csase  then must have realtime data.ttl. un="fsten extents are en"+cod.">1069lueL60010>
569 /a>               10>
5>10>ef="f"flow check */ /spaion="+code=ooooooooo*fttl. un="fsten extents are en"+cod.">107mlueL60010>
570 /a>nass="sref">am_hrefa_a> IS href="fsfactl.>        6f ( a hreffsx_x"+cIO_a> IS href="fsfsx_x"+cIOhrefef="+cod6=arg" class="f ( XFLAGSREALxfM codea href="+6ode=EXFLAGSREALxfM hrefc)ec#L572" idueL572" class="line" 1071lueL60010>
571 /a>               10>
5>10>         break;narg /a>)nops /a>,  sb_rblocko_a> IS href="fssb_rblocko    T="s0..||#L538" idueL538" class="line" 1072lueL60010>
572 /a>               10>
5>10>  a href="+code=ops" class="ssssssref">arg /a>)nops /a>,  sb_rn top_a_a> IS href="fssb_rn top_actl.e="s0..||#L538" idueL538" class="line" 1073lueL60010>
573 /a>               10>
5>10>                  a h     a hef="sref">arg /a>)n        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_n top_a_a> IS href="fsds_n top_actl.ef#37 os="sref">am_hrem6user" crohref="moctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl.sref">ops /a>,  sb_rn top_a_a> IS href="fssb_rn top_actl.c)ec#L572" idueL572" class="line" 1074lueL60010>
574 /a>               10>
5>10>                  a href=============fs_ioctl.c#L561cd54multi_handlereqcd54    T"smulti_handlereqde=EERRO>( a href="+codede=EERRO>classref">arg /a>)n
575 /a>               10>
5>10>                  a hoooooooooooooooogoto s="sref">am_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 1076lueL60010>
576 /a>               10>
5>10> break;n
577 /a>               10>
5>10>:n
578 /a>               10>
5>10>ioctl.c#L539" idueL539" class="line1079lueL60010>
579 /a>               10>
5>10>ef="fs/xfs/xfs_ioctl.iflow check */ /spaion108mlueL60010>
580 /a>               10>
5>10>
ctl."flow check */ /spaion="+code=ooooooooo* Can't modify an immutabl4/append-only file unless cl. un="fsten extents are en"+cod.">10>1lueL60010>
581 /a>               10>
5>10>     "flow check */ /spaion="+code=ooooooooo* we have appropriatq permission.ttl. un="fsten extents are en"+cod.">1082lueL60010>
582 /a>               10>
5>10>q" cl"flow check */ /spaion="+code=ooooooooo*fttl. un="fsten extents are en"+cod.">1083lueL60010>
583 /a>               10>
5>10>                  a hclassref">arg /a>)n        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_"+cIO_a> IS href="fsdi_ioc_spe /ef="+c="fsten extents are en"+cod.">1084lueL60010>
584 /a>               10>
5>10>                  a href=============ss="sref">am_href ( DIFLAGSIMMUTABL codea href="+6ode=EDIFLAGSIMMUTABL     |s="sref">am_href ( DIFLAGSAPPENp" class="sre4 /f ( DIFLAGSAPPENpctl.) ||#L538" idueL538" class="line" 1085lueL60010>
585 /a>               10>
5>10>                  a hoooooss="sref">am_hrefa_a> IS href="fsfactl.>        6f ( a hreffsx_x"+cIO_a> IS href="fsfsx_x"+cIOhrefef="+c#L538" idueL538" class="line" 1086lueL60010>
586 /a>               10>
5>10> break;nam_href ( XFLAGSIMMUTABL codea href="+6ode=EXFLAGSIMMUTABL      |sidueL613" classde=EXFLAGSAPPENp" class="sre4 /f ( XFLAGSAPPENpctl.)).ef="+cf="+c#L572" idueL572" class="line" 1087lueL60010>
587 /a>               10>
5>10>:narg /a>)n
588 /a>               10>
5>10>  a href="+code=ops" class="sfs_ioctl.c#L561cd54multi_handlereqcd54    T"smulti_handlereqde=EERRO>( a href="+codede=EERRO>classref">arg /a>)n9lueL60010>
589 /a>               10>
5>10>ef="fs/xfs/xfs_ioctl.class="sgoto s="sref">am_hreerror_ classmulti_handlereqerror_ class    c#L538" idueL538" class="line" 109mlueL60010>
590 /a>               10>
5>10>
n
591 /a>               10>
5>10>         breac#L612" idueL612" class="line" 1092lueL60010>
592 /a>               10>
5>10>2octl.c#L539" idueL539" class="line1093lueL60010>
593 /a>               10>
5>10>a href="+codemulti_handlereq_t /tranO_ijoismulti_handlereq_t /tranO_ijoisclassref">arg /a>)narg /a>)n
594 /a>               10>
5>10>     #L538" idueL538" class="line" 1095lueL60010>
595 /a>               10>
5>10>             "flow check */ /spaion10>6lueL60010>
596 /a>               10>
5>10>6 hre"flow check */ /spaion="+code=o* Change file ownq"ship.  Must be the ownq" or privilegqd.ttl. un="fsten extents are en"+cod.">1097lueL60010>
597 /a>               10>
5>10>:n1098lueL60010>
598 /a>               10>
5>10>  a href="+cof">am_hreq /a>,  a maskmulti_handlereqmaskhrefef="+cod6=arg" class="s XSPROJIp" class="sre4 /s XSPROJIp    )ec#L572" idueL572" class="line" 10>9lueL60010>
599 /a>               10>
5>10>ef="fs/xfs/xfs_ioctl.iflow check */ /spaion11amlueL60011amlu9 /a>               11aml>110
ctl."flow check */ /spaion="+code=ooooooooo* CAP_FSETID overrides the following reefsictions:ttl. un="fsten extents are en"+cod.">1101lueL60011a
591 /a>               11a
5>110     "flow check */ /spaion="+code=ooooooooo*ttl. un="fsten extents are en"+cod.">1102lueL60011a
592 /a>               11a
5>110q" cl"flow check */ /spaion="+code=ooooooooo* The set-req"-ID and set-group-ID bits of a file will bettl. un="fsten extents are en"+cod.">11a3lueL60011a
593 /a>               11a
5>110ctl.c"flow check */ /spaion="+code=ooooooooo* cleared upon successfuls class=from chown()ttl. un="fsten extents are en"+cod.">11a4lueL60011a
594 /a>               11a
5>110     "flow check */ /spaion="+code=ooooooooo*fttl. un="fsten extents are en"+cod.">11a5lueL60011a
595 /a>               11a
5>110                  a hclassref">arg /a>)n        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_md54multi_handlereqds_md54hrefef="+cosref">arg /a>)n<=EcSUIp" class="sre4 /=EcSUIp    |s="sref">am_hre=EcSGIp" class="sre4 /=EcSGIp    )..f="+cf="+c#L572" idueL572" class="line" 11a6lueL60011a
596 /a>               11a
5>11a break;narg /a>)n               11a
5>110:n__user sref="fs/xfs/xfs_ioctl.>        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_md54multi_handlereqds_md54hrefef="+c= ~sref">arg /a>)n<=EcSUIp" class="sre4 /=EcSUIp    |s="sref">am_hre=EcSGIp" class="sre4 /=EcSGIp    )c#L572" idueL572" class="line" 11a8lueL60011a
598 /a>               11a
5>110ioctl.c#L539" idueL539" class="line11a9lueL60011a
599 /a>               11a
5>11aef="fs/xfs/xfs_ioctl.iflow check */ /spaion111mlueL60011>
610 /a>        return 11>
6>111
ctl."flow check */ /spaion="+code=ooooooooo* Change the ownq"ships and registq" quo a modifications cl. un="fsten extents are en"+cod.">1111lueL60011>
611 /a>}n11>2lueL60011>
612 /a>n1113lueL60011>
613 /a>intnam_hreq /a>,  a xlasget_projihref="fs/xfs/xfsclasget_projihclassref">arg /a>)n IS href="fsfactl.>        6f ( a hreffsx_projihref="fs/xfs/xfsfsx_projihctl.)ec#L572" idueL572" class="line" 11>4lueL60011>
614 /a> a href="+code=11>
6>11>                  a h     a hf">am_hreq /a>,  a f ( cS_QUOTA_RUNNINGcodea href="+6ode=EcS_QUOTA_RUNNINGclassref">arg /a>)nam_href ( cS_PQUOTA_ON( a href="+codede=EcS_PQUOTA_ONclassref">arg /a>)n5lueL60011>
615 /a>        struct 11>
6>111                  a hooooooooooooooooref">arg /a>)narg /a>)narg /a>)n6lueL60011>
616 /a>        struct 11>
6>11> break;nops /a>[ asref="fs/xfs/xfs_ioctl.>        6f ( a href="pdquo user" crohref="="pdquo ctl., ref">arg /a>)n7lueL60011>
617 /a>        struct 11>
6>111:n
618 /a>        int    11>
6>111  a href="+code=ops" class="sfs_ioctl.c#L561classet_projihref="fs/xfs/xfsclasset_projihclassref">arg /a>)n__user fa_a> IS href="fsfactl.>        6f ( a hreffsx_projihref="fs/xfs/xfsfsx_projihctl.)c#L538" idueL538" class="line" 11>9lueL60011>
619 /a>        unsigne11>
6>11>ef="f#L538" idueL538" class="line" 112mlueL60011>
620 /a>         a href11>
6>112s a href="+code=ops" class="siflow check */ /spaion1121lueL60011ref="+c1122lueL60011href="fs/xfs/xfs_ioctl.c11hre>11>q" cl"flow check */ /spaion="+code=ooooooooooooooooo* the ouperblock vq"sion numbq" sinceaprojihs didn't cl. un="fsten extents are en"+cod.">1123lueL60011P_GET"s19ef="+code=ops" 11P_G>11>ctl.c"flow check */ /spaion="+code=ooooooooooooooooo* exist befose DINODE_VERSION_2 and SB_VERSION_NLINK.ttl. un="fsten extents are en"+cod.">1124lueL60011e=PTR_ERR" class="sre   11e=P>11>     "flow check */ /spaion="+code=ooooooooooooooooo*fttl. un="fsten extents are en"+cod.">1125lueL60011xfs/12 /a>nam_hresref="fs/xfs/xfs_ioctl.>        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_vq"sionmulti_handlereqds_vq"sionctl.e="s1.#L572" idueL572" class="line" 1126lueL60011arg /a>)narg /a>)n
528 /a>        11l.c>11>ioctl.c#L539" idueL539" class="line11>9lueL60011 >=  a href="+code=IN11 &g>11>ef="fs/xfs/xfc#L612" idueL612" class="line" 113mlueL600114 /a>               i_m=114 />114 f="f#L612" idueL612" class="line" 1131lueL60011>
535 /a>               11>
5>113         breaclass="sref">am_hremaskmulti_handlereqmaskhrefef="+cod6=arg" class="s XSEXTSIZ codea href="+6os XSEXTSIZ     )#L612" idueL612" class="line" 1132lueL60011class="line" namlueL543"11cla>114  a href="+code=ops" ref">arg /a>)n        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_n top_a_a> IS href="fsds_n top_actl.e"sidueL613" classfa_a> IS href="fsfactl.>        6f ( a hreffsx_n top_a_a> IS href="fsfsx_n top_a     &       os="sref">am_hrem6user" crohref="moctl.>        6f ( a hrefm_sbmulti_handlereqm_sbctl.sref">ops /a>,  sb_blockloeof( a href="+cosb_blockloectl.;#L572" idueL572" class="line" 1133lueL60011r /a>(& a href="+cod11r />114             _user" class="sref"maskmulti_handlereqmaskhrefef="+cod6=arg" class="s XSXFLAGef="+code=MAXNAMs XSXFLAGe    .ec#L572" idueL572" class="line" 1134lueL60011s       a href="+cnode /11s  >113                  a hfs_ioctl.c#L561classet_di"+cIO_a> IS href="fsclasset_di"+cIOclassref">arg /a>)n__user fa_a> IS href="fsfactl.>        6f ( a hreffsx_x"+cIO_a> IS href="fsfsx_x"+cIOhref)c#L538" idueL538" class="line" 1135lueL60011ioctl="line" namlueL543"11ioc>114                  a hfs_ioctl.c#L561clasdi"+cIO_to_" nux_a> IS href="fsclasdi"+cIO_to_" nuxclassref">arg /a>)n(& a href="+cod11r />114 break;n               f_m=ef="11>  >11361" class="line"|n
538 /a>n>114  a href="+comulti_handlereq_t /tranO_ichgtimemulti_handlereq_t /tranO_ichgtimeclassref">arg /a>)narg /a>)nam_href ( cCHGxfM _CHG( a href="+codede=EcCHGxfM _CHGctl.)c#L538" idueL538" class="line" 1139lueL600119">
BADFmp; a href="+cod119">>1139" class="sre" class="sref">_t /tranO_loe_iod54multi_handlereq_t /tranO_loe_iod54classref">arg /a>)narg /a>)nam_href ( cLOGSCORE( a href="+codede=EcLOGSCOREctl.)c#L538" idueL538" class="line" 114mlueL60011am_xfsSREc="line" namlue11am_>114 f="f#L612" idueL612" class="line" 1141lueL60011lass="lineam_href ( STAT=EcNC( a href="+codede=ESTAT=EcNCclassref">arg /a>)n
e" namlueL600">
600 /a11>
e>1142octl.c#L539" idueL539" class="line1143lueL60011las       a href="+cO_ND11las>11a             iflow check */ /spaion1144lueL60011xfs_ioctl.c#L561" idueL511xfs>114     "flow check */ /spaion="+code=o* If this is a synchronous mount, make oure that thettl. un="fsten extents are en"+cod.">1145lueL600111146lueL60011fs_4 /a>               f11fs_>1146 hre"flow check */ /spaion="+code=o* This is slightly oub-optimal in that truncatqs  cquirettl. un="fsten extents are en"+cod.">1147lueL60011/xfs_iocxfs_ioctl.c#L56111/xf>114:n1148lueL60011dle /a>(n114octl."flow check */ /spaion="+code=o* One for the truncatq and one for the timest="+s sinceawettl. un="fsten extents are en"+cod.">1149lueL60011ti         a href="+c a>11ti >114ef="f"flow check */ /spaion="+code=o* don't wacopto change the timest="+s unlessawe're oure thettl. un="fsten extents are en"+cod.">115mlueL60011fs/xfs_iocxfs_ioctl.c#L511fs/>115 href"flow check */ /spaion="+code=o* truncatq worked.  Truncatqs ase lessathan 1f#37 oof the laddisttl. un="fsten extents are en"+cod.">1151lueL60011ERle /a>(n115     "flow check */ /spaion="+code=o* mix so this probably csn't worth the trouble to optimp_a.ttl. un="fsten extents are en"+cod.">1152lueL60011>
552 /a>         a href11>
5>115q" cl"flow check */ /spaion="+code=o*fttl. un="fsten extents are en"+cod.">1153lueL60011>
553 /a>        if ( a 11>
5>115             _user" class="sref"m6user" crohref="moctl.>        6f ( a hrefm_"+cIO_a> IS href="fsm_ioc_spe /ef="+cas="sref">am_href ( MOUNT_WSYNC( a href="+codede=EMOUNT_WSYNC    )#L612" idueL612" class="line" 1154lueL60011>
554 /a>               11>
5>115                  a hfs_ioctl.c#L561clastranO_set_syncmulti_handlereq_t /tranO_set_syncclassref">arg /a>)n
555 /a>               11>
5>1155        breas="sref">am_hrecd54multi_handlereqcd54    T"smulti_handlereq_t /tranO_/ /sirmulti_handlereq_t /tranO_/ /sirclassref">arg /a>)n
556 /a>        }n
5>11fode=copy_frommulti_handlereq_t /iunlockmulti_handlereq_t /iunlockclassref">arg /a>)n__user lockt"+cIO_a> IS href="fslockt"+cIOctl.)c#L538" idueL538" class="line" 1157lueL60011>
557 /a>n1159lueL60011>
559 /a>        if (! a11>
5>11fef="f"flow check */ /spaion="+code=o* Releaseaany dquo (s) the iod54 had kept befose chown.ttl. un="fsten extents are en"+cod.">116mlueL60011>
560 /a>               11>
5>116 href"flow check */ /spaion="+code=o*fttl. un="fsten extents are en"+cod.">1161lueL60011>
561 /a>nam_hreclasqm_dqrel4multi_handlereqclasqm_dqrel4classref">arg /a>)n
562 /a>         a href11>
5>11>  a href="+cos="sref">am_hreclasqm_dqrel4multi_handlereqclasqm_dqrel4classref">arg /a>)n
563 /a>        for ( a11>
5>116a href="+codemulti_handlereq_t /qm_dqrel4multi_handlereqclasqm_dqrel4classref">arg /a>)n
564 /a>               11>
5>116     #L538" idueL538" class="line" 1165lueL60011>
565 /a>               11>
5>11>              class=s="sref">am_hrecd54multi_handlereqcd54    c#L538" idueL538" class="line" 1166lueL60011>
566 /a>               11>
5>11>ctl.c#L547" idueL547" class="line" 11>7lueL60011>
567 /a>               11>
5>11>:nam_hreerror_ classmulti_handlereqerror_ class    :#L547" idueL547" class="line" 11>8lueL60011>
568 /a>               11>
5>116  a href="+comulti_handlereq_t /qm_dqrel4multi_handlereqclasqm_dqrel4classref">arg /a>)n
569 /a>               11>
5>1169" class="sre" class="sref">_t /qm_dqrel4multi_handlereqclasqm_dqrel4classref">arg /a>)n
570 /a>narg /a>)n
571 /a>               11>
5>117         breaclass="sref">am_hrelockt"+cIO_a> IS href="fslockt"+cIOctl.)#L538" idueL538" class="line" 1172lueL60011>
572 /a>               11>
5>11>  a href="+code=ops" multi_handlereq_t /iunlockmulti_handlereq_t /iunlockclassref">arg /a>)n__user lockt"+cIO_a> IS href="fslockt"+cIOctl.)c#L538" idueL538" class="line" 1173lueL60011>
573 /a>               11>
5>11>              class=s="sref">am_hrecd54multi_handlereqcd54    c#L538" idueL538" class="line" 1174lueL60011>
574 /a>               11>
5>11>     c#L612" idueL612" class="line" 1175lueL60011>
575 /a>               11>
5>117ode=copy_from_user" class="sref">co1176lueL60011>
576 /a>               11>
5>11> breas="sref">am_hreSTATIC( a href="+codeSTATIC     intopy_from_user" class="sref">co1177lueL60011>
577 /a>               11>
5>11>:nco1178lueL60011>
578 /a>               11>
5>117  a href="+comulti_handlereq_t /iod54trmulti_handlereq_t /iod54tr a href="+code=op*ref">arg /a>)nco1179lueL60011>
579 /a>               11>
5>11>ef="fs/xfs/xfstructo="sref">__user fil4multi_handlereqfil4 a href="+code=op*ref">arg /a>)nco118mlueL60011>
580 /a>               11>
5>118
            voidref="+code=ops" "+comulti_handlereq__req"ef="fs/xfs/xfs___req"     *ref">arg /a>)n1lueL60011>
581 /a>               11>
5>11>     c#L572" idueL572" class="line" 1182lueL60011>
582 /a>               11>
5>1182f="fs/xfs/xfstructo="sref">__user fsxattrmulti_handlereqfsxattr a href="+code="sref">__user fa_a> IS href="fsfactl.c#L538" idueL538" class="line" 1183lueL60011>
583 /a>               11>
5>11>             unsigned intde=ops" "+comulti_handlereqmaskmulti_handlereqmaskhrefc#L538" idueL538" class="line" 1184lueL60011>
584 /a>               11>
5>11>             intds="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1185lueL60011>
585 /a>               11>
5>118ode=copy_from_user" class="sref">co1186lueL60011>
586 /a>               11>
5>118ode=copy_from_user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ afa_a> IS href="fsfactl.,o="sref">__user argmulti_handlereqargctl., op_aofss="sref">am_hrefa_a> IS href="fsfactl.)).#L572" idueL572" class="line" 1187lueL60011>
587 /a>               11>
5>11>:nam_hreEFAULT_a> IS href="fsEFAULThrefc#L538" idueL538" class="line" 1188lueL60011>
588 /a>               11>
5>118ioctl.c#L539" idueL539" class="line11>9lueL60011>
589 /a>               11>
5>1189" class="sre" class="sref">maskmulti_handlereqmaskhrefe"smulti_handlereqs XSXFLAGef="+code=MAXNAMs XSXFLAGe     |sidueL613" classs XSEXTSIZ codea href="+6os XSEXTSIZ      |sidueL613" classs XSPROJIp" class="sre4 /s XSPROJIp    c#L538" idueL538" class="line" 119mlueL60011>
590 /a>               11>
5>11>
nam_hreq /a>,  a filref="fs/xfs/xfs_filrctl.>        6f ( a hrefft"+cIO_a> IS href="fsf_ioc_spe /ef="+caam_hreq /a>,  a O_NDELAY_a> IS href="fsO_NDELAYpe /|s="sref">am_hreO_NONBLOCK_a> IS href="fsO_NONBLOCKctl.))#L538" idueL538" class="line" 1191lueL60011>
591 /a>               11>
5>119         break;nmaskmulti_handlereqmaskhrefe|"smulti_handlereqs XSNONBLOCK_a> IS href="fss XSNONBLOCK    c#L538" idueL538" class="line" 1192lueL60011>
592 /a>               11>
5>11>2octl.c#L539" idueL539" class="line1193lueL60011>
593 /a>               11>
5>11>a href="+codemulti_handlereqerrormulti_handlereqerrorhrefT"smulti_handlereqmnt_waco_write_fil4multi_handlereqmnt_waco_write_fil4classref">arg /a>)n
594 /a>               11>
5>1194nam_hreq /a>,  a errormulti_handlereqerrorhref)#L538" idueL538" class="line" 1195lueL60011>
595 /a>               11>
5>119                  a h class=s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 11>6lueL60011>
596 /a>               11>
5>119ode=copy_frommulti_handlereqerrormulti_handlereqerrorhrefT"smulti_handlereqclass="li_setattrmulti_handlereq_t /iocli_setattrclassref">arg /a>)nops /a>[ afa_a> IS href="fsfactl.,o="sref">__user maskmulti_handlereqmaskhref)c#L538" idueL538" class="line" 1197lueL60011>
597 /a>               11>
5>1197" class="sre" class="sref">mco_drop_write_fil4multi_handlereqmnt_drop_write_fil4classref">arg /a>)n
598 /a>               11>
5>11>  a href="+co class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 11>9lueL60011>
599 /a>               11>
5>11>ef="fc#L612" idueL612" class="line" 12amlueL60012amlu9 /a>               12aml>120 f="f#L612" idueL612" class="line" 1201lueL60012a
591 /a>               12a
5>120     "="sref">am_hreSTATIC( a href="+codeSTATIC     intopy_from_user" class="sref">co1202lueL60012a
592 /a>               12a
5>120q" cl"ulti_handlereq_t /ioc_getx"+cIO_a> IS href="fs_t /ioc_getx"+cIOclassopy_from_user" class="sref">co12a3lueL60012a
593 /a>               12a
5>120a href="+codemulti_handlereq_t /iod54trmulti_handlereq_t /iod54tr a href="+code=op*ref">arg /a>)nco12a4lueL60012a
594 /a>               12a
5>1204narg /a>)n               12a
5>120     c#L572" idueL572" class="line" 12a6lueL60012a
596 /a>               12a
5>12a break;n IS href="fsf+cIOclasc#L538" idueL538" class="line" 12a7lueL60012a
597 /a>               12a
5>12061" class="line"|n IS href="fsf+cIOclasT"smulti_handlereqclasdi2lx"+cIO_a> IS href="fs_t /di2lx"+cIOclassref">arg /a>)n        6f ( a href="href="fs/xfs/xfs="hctl.sref">ops /a>,  ds_"+cIO_a> IS href="fsdi_ioc_spe /)c#L538" idueL538" class="line" 12a9lueL60012a
599 /a>               12a
5>12aef="fs/xfs/xf_user" class="sref"copy_to_req"ef="fs/xfs/xfs_copy_to_req"classref">arg /a>)nops /a>[ af+cIO_a> IS href="fsf+cIOclas, op_aofss="sref">am_href+cIO_a> IS href="fsf+cIOclas)).#L572" idueL572" class="line" 121mlueL60012>
610 /a>        return 12>
6>121s a href="+code=ops"  class=-s="sref">am_hreEFAULT_a> IS href="fsEFAULThrefc#L538" idueL538" class="line" 1211lueL60012>
611 /a>}n
612 /a>n
613 /a>intn
614 /a> a href="+code=12>
6>12>     "="sref">am_hreSTATIC( a href="+codeSTATIC     intopy_from_user" class="sref">co12>5lueL60012>
615 /a>        struct 12>
6>121     "ulti_handlereq_t /ioc_setx"+cIO_a> IS href="fs_t /ioc_setx"+cIOclassopy_from_user" class="sref">co12>6lueL60012>
616 /a>        struct 12>
6>121ode=copy_frommulti_handlereq_t /iod54trmulti_handlereq_t /iod54tr a href="+code=op*ref">arg /a>)nco12>7lueL60012>
617 /a>        struct 12>
6>121:n__user fil4multi_handlereqfil4 a href="+code=op*ref">arg /a>)nco1218lueL60012>
618 /a>        int    12>
6>121  a href="+covoidref="+code=ops" "+comulti_handlereq__req"ef="fs/xfs/xfs___req"     *ref">arg /a>)n9lueL60012>
619 /a>        unsigne12>
6>12>ef="fc#L572" idueL572" class="line" 122mlueL60012>
620 /a>         a href12>
6>122s a href="+costructo="sref">__user fsxattrmulti_handlereqfsxattr a href="+code="sref">__user fa_a> IS href="fsfactl.c#L538" idueL538" class="line" 1221lueL60012ref="+c IS href="fsf+cIOclasc#L538" idueL538" class="line" 1222lueL60012href="fs/xfs/xfs_ioctl.c12hre>1222 a href="+counsigned intde=ops" "+comulti_handlereqmaskmulti_handlereqmaskhrefc#L538" idueL538" class="line" 1223lueL60012P_GET"s19ef="+code=ops" 12P_G>122             _ntds="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1224lueL60012e=PTR_ERR" class="sre   12e=P>122     #L538" idueL538" class="line" 1225lueL60012xfs/12 /a>nops /a>[ af+cIO_a> IS href="fsf+cIOclas, ="sref">__user argmulti_handlereqargctl., op_aofss="sref">am_href+cIO_a> IS href="fsf+cIOclas)).#L572" idueL572" class="line" 1226lueL60012am_hreEFAULT_a> IS href="fsEFAULThrefc#L538" idueL538" class="line" 1227lueL60012
528 /a>        12l.c>122  a href="+cof">am_hreq /a>,  a "+cIO_a> IS href="fsf+cIOclasTf="+ca~sref">arg /a>)n122ef="fs/xfs/xfs_ioctl.class=idueL613" classs SNOAxfM _Fa href="6_MAX" ce=ENOAxfM _Fa     |sidueL613" classs SNODUMP_Fa href="6_MAX" ce=ENODUMP_Fa     |s\lass="line"|n
535 /a>               12>
5>123         break;nam_hreEOPNOTSUPP_a> IS href="fsEOPNOTSUPPhrefc#L538" idueL538" class="line" 1232lueL60012class="line" namlueL543"12cla>1232octl.c#L539" idueL539" class="line1233lueL60012r /a>(& a href="+cod12r />123a href="+codemulti_handlereqmaskmulti_handlereqmaskhrefe"smulti_handlereqs XSXFLAGef="+code=MAXNAMs XSXFLAGe    c#L538" idueL538" class="line" 1234lueL60012s       a href="+cnode /12s  >1234nam_hreq /a>,  a filref="fs/xfs/xfs_filrctl.>        6f ( a hrefft"+cIO_a> IS href="fsf_ioc_spe /ef="+caam_hreq /a>,  a O_NDELAY_a> IS href="fsO_NDELAYpe /|s="sref">am_hreO_NONBLOCK_a> IS href="fsO_NONBLOCKctl.))#L538" idueL538" class="line" 1235lueL60012ioctl="line" namlueL543"12ioc>124                  a hfs_ioctl.c#L561maskmulti_handlereqmaskhrefe|"smulti_handlereqs XSNONBLOCK_a> IS href="fss XSNONBLOCK    c#L538" idueL538" class="line" 1236lueL60012r /a>(& a href="+cod12r />123ode=copy_frommulti_handlereqfa_a> IS href="fsfactl.sref">ops /a>,  fsx_x"+cIO_a> IS href="fsfsx_x"+cIOhrefe"smulti_handlereqclasmerge/ioc_x"+cIO_a> IS href="fs_t /merge/ioc_x"+cIOclassref">arg /a>)n IS href="fsf+cIOclas, ="sref">__user classp2x"+cIO_a> IS href="fs_t /ip2x"+cIOclassref">arg /a>)n               f_m=ef="12>  >12361" class="line"|n
538 /a>n>124  a href="+comulti_handlereqerrormulti_handlereqerrorhrefT"smulti_handlereqmnt_waco_write_fil4multi_handlereqmnt_waco_write_fil4classref">arg /a>)n
BADFmp; a href="+cod129">>123ef="fs/xfs/xf_user" class="sref"errormulti_handlereqerrorhref)#L538" idueL538" class="line" 124mlueL60012am_xfsSREc="line" namlue12am_>124s a href="+code=ops"  class=s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1241lueL60012lass="lineam_hreerrormulti_handlereqerrorhrefT"smulti_handlereqclass="li_setattrmulti_handlereq_t /iocli_setattrclassref">arg /a>)nops /a>[ afa_a> IS href="fsfactl.,o="sref">__user maskmulti_handlereqmaskhref)c#L538" idueL538" class="line" 1242lueL60012>
e" namlueL600">
600 /a12>
e>124  a href="+cos="sref">am_hremco_drop_write_fil4multi_handlereqmnt_drop_write_fil4classref">arg /a>)nam_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1244lueL60012xfs_ioctl.c#L561" idueL512xfs>124     c#L612" idueL612" class="line" 1245lueL60012co1246lueL60012fs_4 /a>               f12fs_>124 breas="sref">am_hreSTATIC( a href="+codeSTATIC     intopy_from_user" class="sref">co1247lueL60012/xfs_iocxfs_ioctl.c#L56112/xf>124:narg /a>)n__user getbmapx_a> IS href="fsgetbmapx     *ref">arg /a>)n IS href="fsbmvctl.,o_ntd*ref">arg /a>)n(n124octl.c#L572" idueL572" class="line" 1249lueL60012ti         a href="+c a>12ti >124ef="fs/xfs/xfstructo="sref">__user getbmap_a> IS href="fsgetbmapf="fsmulti_handlereq__req"ef="fs/xfs/xfs___req"     op*ref">arg /a>)narg /a>)n125 f="f#L612" idueL612" class="line" 1251lueL60012ERle /a>(n125         breasflow check */ /spaion1252lueL60012>
552 /a>         a href12>
5>125  a href="+co_user" class="sref"copy_to_req"ef="fs/xfs/xfs_copy_to_req"classref">arg /a>)n__user bmv_a> IS href="fsbmvctl.,oop_aofsstructo="sref">__user getbmap_a> IS href="fsgetbmapf="f)).#L572" idueL572" class="line" 1253lueL60012>
553 /a>        if ( a 12>
5>125             de=ops"  class=s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1254lueL60012>
554 /a>               12>
5>125     #L538" idueL538" class="line" 1255lueL60012>
555 /a>               12>
5>1255        brea*ref">arg /a>)n__user getbmap_a> IS href="fsgetbmapf="f)c#L538" idueL538" class="line" 1256lueL60012>
556 /a>        }n
5>12fode=copy_from class=0c#L538" idueL538" class="line" 1257lueL60012>
557 /a>n
558 /a>         a href12>
5>125ioctl.c#L539" idueL539" class="line1259lueL60012>
559 /a>        if (! a12>
5>12fef="f"="sref">am_hreSTATIC( a href="+codeSTATIC     intopy_from_user" class="sref">co126mlueL60012>
560 /a>               12>
5>126 href"ulti_handlereq_t /ioc_getbmap_a> IS href="fs_t /ioc_getbmapclassopy_from_user" class="sref">co1261lueL60012>
561 /a>n__user _t /iod54multi_handlereq_t /iod54        brea*ref">arg /a>)nco1262lueL60012>
562 /a>         a href12>
5>12>  a href="+cointde=ops" "+cooooooooooref">arg /a>)n IS href="fsso"+cIOctl.,opy_from_user" class="sref">co1263lueL60012>
563 /a>        for ( a12>
5>126a href="+codeunsigned intde=ops" "+comulti_handlereqcmhref="fs/xfs/xfscmhctl.,opy_from_user" class="sref">co1264lueL60012>
564 /a>               12>
5>1264narg /a>)n
565 /a>               12>
5>126     c#L572" idueL572" class="line" 1266lueL60012>
566 /a>               12>
5>1266        breastructo="sref">__user getbmapx_a> IS href="fsgetbmapx     ps" "+comulti_handlereqbmx_a> IS href="fsbmxctl.c#L538" idueL538" class="line" 12>7lueL60012>
567 /a>               12>
5>1267 a href="+cointde=ops" "+cooooooooooref">arg /a>)n8lueL60012>
568 /a>               12>
5>126ioctl.c#L539" idueL539" class="line1269lueL60012>
569 /a>               12>
5>126ef="fs/xfs/xf_user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ abmx_a> IS href="fsbmxctl., ="sref">__user argmulti_handlereqargctl., op_aofsstructo="sref">__user getbmapx_a> IS href="fsgetbmapx    )).#L572" idueL572" class="line" 127mlueL60012>
570 /a>nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1271lueL60012>
571 /a>               12>
5>127     #L538" idueL538" class="line" 1272lueL60012>
572 /a>               12>
5>127  a href="+co_user" class="sref"bmx_a> IS href="fsbmxctl.sref">ops /a>,  bmv_count_a> IS href="fsbmv_countpe /eflt; 2.#L572" idueL572" class="line" 1273lueL60012>
573 /a>               12>
5>127             de=ops"  class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n
574 /a>               12>
5>127     #L538" idueL538" class="line" 1275lueL60012>
575 /a>               12>
5>1275        breas="sref">am_hrebmx_a> IS href="fsbmxctl.sref">ops /a>,  bmv_i"+cIO_a> IS href="fsbmv_i"+cIOhrefT"ser" class="sref"cmhref="fs/xfs/xfscmhctl.e="ss="sref">am_hrede=EIOC_GETBMAPA( a href="+codede=EIOC_GETBMAPActl.e?ss="sref">am_hreBMV_IF_ATTRFORK_a> IS href="fsBMV_IF_ATTRFORKctl.e: 0)c#L538" idueL538" class="line" 1276lueL60012>
576 /a>               12>
5>127ode=copy_from_user" class="sref"so"+cIO_a> IS href="fsso"+cIOctl.ef="+cas="sref">am_hreIO_INVIef="+code=MAXNAMIO_INVIectl.)#L538" idueL538" class="line" 1277lueL60012>
577 /a>               12>
5>127:nam_hrebmx_a> IS href="fsbmxctl.sref">ops /a>,  bmv_i"+cIO_a> IS href="fsbmv_i"+cIOhrefT|"smulti_handlereqBMV_IF_NO_DMAPI_REAp" class="sre4 /BMV_IF_NO_DMAPI_REAphrefc#L538" idueL538" class="line" 1278lueL60012>
578 /a>               12>
5>127ioctl.c#L539" idueL539" class="line1279lueL60012>
579 /a>               12>
5>1279" class="sre" class="sref">errormulti_handlereqerrorhrefT"smulti_handlereqclasgetbmap_a> IS href="fs_t /getbmapclassref">arg /a>)nops /a>[ abmx_a> IS href="fsbmxctl., ="sref">__user _t /getbmap_formarmulti_handlereq_t /getbmap_formarclas,opy_from_user" class="sref">co128mlueL60012>
580 /a>               12>
5>128s a href="+code=ops" class=======sstructo="sref">__user getbmap_a> IS href="fsgetbmapf="f *)="sref">__user argmulti_handlereqargctl.+1)c#L538" idueL538" class="line" 12>1lueL60012>
581 /a>               12>
5>128         breaclass="sref">am_hreerrormulti_handlereqerrorhref)#L538" idueL538" class="line" 1282lueL60012>
582 /a>               12>
5>1282f="fs/xfs/xfde=ops"  class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1283lueL60012>
583 /a>               12>
5>128     #L612" idueL612" class="line" 1284lueL60012>
584 /a>               12>
5>12>             sflow check */ /spaion1285lueL60012>
585 /a>               12>
5>128             _user" class="sref"copy_to_req"ef="fs/xfs/xfs_copy_to_req"classref">arg /a>)nops /a>[ abmx_a> IS href="fsbmxctl., op_aofsstructo="sref">__user getbmap_a> IS href="fsgetbmapf="f)).#L572" idueL572" class="line" 1286lueL60012>
586 /a>               12>
5>128 break;nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1287lueL60012>
587 /a>               12>
5>12>:n
588 /a>               12>
5>128ioctlc#L612" idueL612" class="line" 12>9lueL60012>
589 /a>               12>
5>128ef="f#L538" idueL538" class="line" 129mlueL60012>
590 /a>               12>
5>129 href"ulti_handlereqSTATIC( a href="+codeSTATIC     intopy_from_user" class="sref">co1291lueL60012>
591 /a>               12>
5>129     "="sref">am_hre_t /getbmapx_formarmulti_handlereq_t /getbmapx_formarclassvoidr**ref">arg /a>)n__user getbmapx_a> IS href="fsgetbmapx     *ref">arg /a>)n IS href="fsbmvctl.,o_ntd*ref">arg /a>)n
592 /a>               12>
5>12>2octlc#L572" idueL572" class="line" 1293lueL60012>
593 /a>               12>
5>12>a href="+codestructo="sref">__user getbmapx_a> IS href="fsgetbmapx     multi_handlereq__req"ef="fs/xfs/xfs___req"     o*ref">arg /a>)narg /a>)n
594 /a>               12>
5>129     #L538" idueL538" class="line" 1295lueL60012>
595 /a>               12>
5>129             _user" class="sref"copy_to_req"ef="fs/xfs/xfs_copy_to_req"classref">arg /a>)n__user bmv_a> IS href="fsbmvctl.,oop_aofsstructo="sref">__user getbmapx_a> IS href="fsgetbmapx    )).#L572" idueL572" class="line" 12>6lueL60012>
596 /a>               12>
5>129 break;nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1297lueL60012>
597 /a>               12>
5>12961" class="line"|narg /a>)n__user getbmapx_a> IS href="fsgetbmapx    )c#L538" idueL538" class="line" 1299lueL60012>
599 /a>               12>
5>1299n               13aml>130 f="fc#L612" idueL612" class="line" 1301lueL60013a
591 /a>               13a
5>130     #L538" idueL538" class="line" 1302lueL60013a
592 /a>               13a
5>130q" cl"ulti_handlereqSTATIC( a href="+codeSTATIC     intopy_from_user" class="sref">co13a3lueL60013a
593 /a>               13a
5>130a hre"ulti_handlereq_t /ioc_getbmapx_a> IS href="fsclasioc_getbmapxclassopy_from_user" class="sref">co13a4lueL60013a
594 /a>               13a
5>1304n__user _t /iod54multi_handlereq_t /iod54        brea*ref">arg /a>)nco13a5lueL60013a
595 /a>               13a
5>130             voidref="+code=ops" "+comulti_handlereq__req"ef="fs/xfs/xfs___req"     *ref">arg /a>)n               13a
5>13a breac#L572" idueL572" class="line" 13a7lueL60013a
597 /a>               13a
5>130:n__user getbmapx_a> IS href="fsgetbmapx     ps" "+comulti_handlereqbmx_a> IS href="fsbmxctl.c#L538" idueL538" class="line" 13a8lueL60013a
598 /a>               13a
5>130  a href="+cointde=ops" "+cooooooooooref">arg /a>)n               13a
5>130ef="f#L538" idueL538" class="line" 131mlueL60013>
610 /a>        return 13>
6>131s a href="+co_user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ abmx_a> IS href="fsbmxctl., ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ abmx_a> IS href="fsbmxctl.)).#L572" idueL572" class="line" 1311lueL60013>
611 /a>}nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1312lueL60013>
612 /a>n
6>131             _user" class="sref"bmx_a> IS href="fsbmxctl.sref">ops /a>,  bmv_count_a> IS href="fsbmv_countpe /eflt; 2.#L572" idueL572" class="line" 1314lueL60013>
614 /a> a href="+code=13>
6>131                  a h class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n5lueL60013>
615 /a>        struct 13>
6>131ode=copy_from_user" class="sref">co13>6lueL60013>
616 /a>        struct 13>
6>131ode=copy_from_user" class="sref"bmx_a> IS href="fsbmxctl.sref">ops /a>,  bmv_i"+cIO_a> IS href="fsbmv_i"+cIOhrefTf="+caa~multi_handlereqBMV_IF_VAaIp" class="sre4 /BMV_IF_VAaIpctl.))opy_from_user" class="sref">co13>7lueL60013>
617 /a>        struct 13>
6>131:nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n8lueL60013>
618 /a>        int    13>
6>131ioctl.c#L539" idueL539" class="line13>9lueL60013>
619 /a>        unsigne13>
6>1319" class="sre" class="sref">errormulti_handlereqerrorhrefT"smulti_handlereqclasgetbmap_a> IS href="fs_t /getbmapclassref">arg /a>)nops /a>[ abmx_a> IS href="fsbmxctl., ="sref">__user _t /getbmapx_formarmulti_handlereq_t /getbmapx_formarclas,opy_from_user" class="sref">co132mlueL60013>
620 /a>         a href13>
6>132s a href="+code=ops" class=======sstructo="sref">__user getbmapx_a> IS href="fsgetbmapx     *)="sref">__user argmulti_handlereqargctl.+1)c#L538" idueL538" class="line" 1321lueL60013ref="+cam_hreerrormulti_handlereqerrorhref)#L538" idueL538" class="line" 1322lueL60013href="fs/xfs/xfs_ioctl.c13hre>1322f="fs/xfs/xfde=ops"  class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1323lueL60013P_GET"s19ef="+code=ops" 13P_G>132     #L612" idueL612" class="line" 1324lueL60013e=PTR_ERR" class="sre   13e=P>132             sflow check */ /spaion1325lueL60013xfs/12 /a>narg /a>)nops /a>[ abmx_a> IS href="fsbmxctl., op_aofsstructo="sref">__user getbmapx_a> IS href="fsgetbmapx    )).#L572" idueL572" class="line" 1326lueL60013am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1327lueL60013
528 /a>        13l.c>132  a href="+co class=0c#L538" idueL538" class="line" 1329lueL60013 >=  a href="+code=IN13 &g>132ef="fc#L612" idueL612" class="line" 133mlueL600134 /a>               i_m=134 />133 f="f#L612" idueL612" class="line" 1331lueL60013>
535 /a>               13>
5>133     "flow check */ /spaion1332lueL60013class="line" namlueL543"13cla>133q" cl"flow check */ /spaion=* Note: someoof the n"+co'so class=positive numbers as attl. un="fsten extents are en"+cod.">1333lueL60013r /a>(& a href="+cod13r />133a hre"flow check */ /spaion=* byte countoindicating success, such as read a k_by_handla.ttl. un="fsten extents are en"+cod.">1334lueL60013s       a href="+cnode /13s  >133     "flow check */ /spaion=* So we don't &quo ;sign flip&quo ; like most other routines.  This meansttl. un="fsten extents are en"+cod.">1335lueL60013ioctl="line" namlueL543"13ioc>133     "flow check */ /spaion=* true errors need to be  classed as a negative valua.ttl. un="fsten extents are en"+cod.">1336lueL60013r /a>(& a href="+cod13r />1336 hre"flow check */ /spaion=*fttl. un="fsten extents are en"+cod.">1337lueL60013>               f_m=ef="13>  >13361" clong="fsten extents are en"+cod.">1338lueL600138">
538 /a>n>134  a h="sref">__user _t /fil4en"+comulti_handlereq_t /fil4en"+coclassopy_from_user" class="sref">co1339lueL600139">
BADFmp; a href="+cod139">>133ef="fs/xfs/xfstructo="sref">__user fil4multi_handlereqfil4 a href="+code=op*ref">arg /a>)nco134mlueL60013am_xfsSREc="line" namlue13am_>134s a href="+counsigned intde=ops" "+comulti_handlereqcmhref="fs/xfs/xfscmhctl.,opy_from_user" class="sref">co1341lueL60013lass="line
e" namlueL600">
600 /a13>
e>1342octlc#L572" idueL572" class="line" 1343lueL60013las       a href="+cO_ND13las>134a href="+codestructo="sref">__user iod54multi_handlereqiod54        breae=op*ref">arg /a>)narg /a>)n1344n__user _t /iod54multi_handlereq_t /iod54        brea*ref">arg /a>)narg /a>)n__user _t /mount_a> IS href="fs_t /mount        brea*ref">arg /a>)n IS href="fsi/mount    c#L538" idueL538" class="line" 1346lueL60013fs_4 /a>               f13fs_>134 break;narg /a>)n__user ref="fs/xfs/xfs_phrefc#L538" idueL538" class="line" 1347lueL60013/xfs_iocxfs_ioctl.c#L56113/xf>1347 a href="+cointde=ops" "+cooooooooooref">arg /a>)n IS href="fsso"+cIOctl.e==0c#L538" idueL538" class="line" 1348lueL60013dle /a>(n134  a href="+cointde=ops" "+cooooooooooref">arg /a>)n135
nam_hreq /a>,  a filref="fs/xfs/xfs_filrctl.>        6f ( a hrefftmd54multi_handlereqftmd54hrefTf="+ca    6f ( a hrefFMODE_NOCMxfM multi_handlereqFMODE_NOCMxfM href)#L538" idueL538" class="line" 1351lueL60013ERle /a>(n135         break;nso"+cIO_a> IS href="fsso"+cIOctl.e|"smulti_handlereqIO_INVIef="+code=MAXNAMIO_INVIectl.c#L538" idueL538" class="line" 1352lueL60013>
552 /a>         a href13>
5>1352octl.c#L539" idueL539" class="line1353lueL60013>
553 /a>        if ( a 13>
5>135a href="+codemulti_handlereqtrace__t /fil4en"+comulti_handlereqtrace__t /fil4en"+coclassref">arg /a>)n
554 /a>               13>
5>135     #L538" idueL538" class="line" 1355lueL60013>
555 /a>               13>
5>1355        breaswitch er" class="sref"cmhref="fs/xfs/xfscmhctl.) c#L572" idueL572" class="line" 1356lueL60013>
556 /a>        }n
5>13fode=copy_fromcasea    6f ( a hrefFITRIMmulti_handlereqFITRIMde=c:#L547" idueL547" class="line" 1357lueL60013>
557 /a>narg /a>)n__user argmulti_handlereqargctl.)c#L538" idueL538" class="line" 1358lueL60013>
558 /a>         a href13>
5>1358de=copy_fromcasea    6f ( a hrefde=EIOC_ALLOCSP_a> IS href="fsde=EIOC_ALLOCSPde=c:#L547" idueL547" class="line" 1359lueL60013>
559 /a>        if (! a13>
5>1359de=copy_fromcasea    6f ( a hrefde=EIOC_FREESP_a> IS href="fsde=EIOC_FREESPde=c:#L547" idueL547" class="line" 136mlueL60013>
560 /a>               13>
5>1360de=copy_fromcasea    6f ( a hrefde=EIOC_RESVSP_a> IS href="fsde=EIOC_RESVSPde=c:#L547" idueL547" class="line" 1361lueL60013>
561 /a>n
562 /a>         a href13>
5>13>  a href="+cocasea    6f ( a hrefde=EIOC_ALLOCSP>
564 /a>  ef="fsde=EIOC_ALLOCSP64n
563 /a>        for ( a13>
5>136a href="+codecasea    6f ( a hrefde=EIOC_FREESP>
564 /a>  ef="fsde=EIOC_FREESP>
n
564 /a>               13>
5>1364n
n
565 /a>               13>
5>1365        breacasea    6f ( a hrefde=EIOC_UNRESVSP>
564 /a>  ef="fsde=EIOC_UNRESVSP>
n
566 /a>               13>
5>136ode=copy_fromcasea    6f ( a hrefde=EIOC_ZERO_RANG multi_handlereqde=EIOC_ZERO_RANG n7lueL60013>
567 /a>               13>
5>136:nam_hre_t /flock64trmulti_handlereq_t /flock64trnops /a>[ abf_a> IS href="fsbfctl.c#L538" idueL538" class="line" 13>8lueL60013>
568 /a>               13>
5>136ioctl.c#L539" idueL539" class="line1369lueL60013>
569 /a>               13>
5>136ef="fs/xfs/xfs_ioctl._user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ abf_a> IS href="fsbfctl., ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ abf_a> IS href="fsbfctl.)).#L572" idueL572" class="line" 137mlueL60013>
570 /a>nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1371lueL60013>
571 /a>               13>
5>137         break;narg /a>)narg /a>)narg /a>)narg /a>)n IS href="fsso"+cIOctl.,omulti_handlereqcmhref="fs/xfs/xfscmhctl., ss="sref">ops /a>[ abf_a> IS href="fsbfctl.)c#L538" idueL538" class="line" 1372lueL60013>
572 /a>               13>
5>137  a href="+coc#L612" idueL612" class="line" 1373lueL60013>
573 /a>               13>
5>137a href="+codecasea    6f ( a hrefde=EIOC_DIOINFOmulti_handlereqde=EIOC_DIOINFOn
574 /a>               13>
5>137                  a hstructo="sref">__user dioattrmulti_handlereqdioattr      ="sref">__user da_a> IS href="fsdactl.c#L538" idueL538" class="line" 1375lueL60013>
575 /a>               13>
5>1375        brea/xfs/xfss="sref">am_hre_t /buftargtrmulti_handlereq_t /buftargtr       *ref">arg /a>)n
576 /a>               13>
5>137 break;nam_hrede=EIS_REALxfM _INOD multi_handlereqde=EIS_REALxfM _INOD classref">arg /a>)n
577 /a>               13>
5>137:nam_hrem6user" crohref="moctl.>        6f ( a hrefm_rtdev_targ6user" crohref="m_rtdev_targ6nam_hrem6user" crohref="moctl.>        6f ( a hrefm_ddev_targ6user" crohref="m_ddev_targ6n
578 /a>               13>
5>137ioctl.c#L539" idueL539" class="line1379lueL60013>
579 /a>               13>
5>137ef="fs/xfs/xfs_ioctl.="sref">__user da_a> IS href="fsdactl.sref">ops /a>,  d_mem_a> IS href="fsd_memctl. "smulti_handlereqda_a> IS href="fsdactl.sref">ops /a>,  d_miniosz_a> IS href="fsd_minioszctl. "s1eflt;flt; ref">arg /a>)n        6f ( a hrefbt_sshift_a> IS href="fsbt_sshiftn
580 /a>               13>
5>138s a href="+code=ops" multi_handlereqda_a> IS href="fsdactl.sref">ops /a>,  d_maxiosz_a> IS href="fsd_maxioszctl. "smulti_handlereqINT_MAXf="+code=MAXNAMINT_MAXhrefTf="+ca~sref">arg /a>)n IS href="fsdactl.sref">ops /a>,  d_miniosz_a> IS href="fsd_minioszctl. - 1)c#L538" idueL538" class="line" 13>1lueL60013>
581 /a>               13>
5>138     #L538" idueL538" class="line" 1382lueL60013>
582 /a>               13>
5>1382f="fs/xfs/xfde=ops" _user" class="sref"copy_to_req"ef="fs/xfs/xfs_copy_to_req"classref">arg /a>)nops /a>[ ada_a> IS href="fsdactl., op_aofsref">ops /a>[ ada_a> IS href="fsdactl.)).#L572" idueL572" class="line" 1383lueL60013>
583 /a>               13>
5>138             de=ops"          class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1384lueL60013>
584 /a>               13>
5>138                  a h class=0c#L538" idueL538" class="line" 1385lueL60013>
585 /a>               13>
5>138             c#L612" idueL612" class="line" 1386lueL60013>
586 /a>               13>
5>138 brea#L612" idueL612" class="line" 1387lueL60013>
587 /a>               13>
5>13>:n
588 /a>               13>
5>1388de=copy_fromcasea    6f ( a hrefde=EIOC_FSBULKSTATmulti_handlereqde=EIOC_FSBULKSTATn
589 /a>               13>
5>1389de=copy_fromcasea    6f ( a hrefde=EIOC_FSINUMBERef="+code=MAXNAMde=EIOC_FSINUMBERen
590 /a>               13>
5>139s a href="+code=ops"  class=s="sref">am_hreclasioc_bulkstarmulti_handlereq_t /ioc_bulkstarclassref">arg /a>)n__user cmhref="fs/xfs/xfscmhctl., ="sref">__user argmulti_handlereqargctl.)c#L538" idueL538" class="line" 1391lueL60013>
591 /a>               13>
5>139     #L538" idueL538" class="line" 1392lueL60013>
592 /a>               13>
5>139  a href="+cocasea    6f ( a hrefde=EIOC_FSGEOMETRY_V1f="+code=MAXNAMde=EIOC_FSGEOMETRY_V1n
593 /a>               13>
5>139             de=ops"  class=s="sref">am_hre_t /ioc_fsgeometry_v1f="+code=MAXNAM_t /ioc_fsgeometry_v1classref">arg /a>)n__user argmulti_handlereqargctl.)c#L538" idueL538" class="line" 1394lueL60013>
594 /a>               13>
5>139     #L538" idueL538" class="line" 1395lueL60013>
595 /a>               13>
5>1395        breacasea    6f ( a hrefde=EIOC_FSGEOMETRYf="+code=MAXNAMde=EIOC_FSGEOMETRYn
596 /a>               13>
5>139 break;nam_hre_t /ioc_fsgeometryf="+code=MAXNAM_t /ioc_fsgeometryclassref">arg /a>)n__user argmulti_handlereqargctl.)c#L538" idueL538" class="line" 1397lueL60013>
597 /a>               13>
5>13961" class="line"|n
599 /a>               13>
5>139ef="fs/xfs/xfs_ioctl. class=s="sref">am_hreput_req"ef="fs/xfs/xfs_put_req"classref">arg /a>)n        6f ( a href="generationmulti_handlereqi"generationctl., (_ntds="sref">am_hre__req"ef="fs/xfs/xfs___req"     *)="sref">__user argmulti_handlereqargctl.)c#L538" idueL538" class="line" 14amlueL60014amlu9 /a>               14aml>140 f="f#L612" idueL612" class="line" 1401lueL60014a
591 /a>               14a
5>140         breacasea    6f ( a hrefde=EIOC_FSGETXATTRf="+code=MAXNAMde=EIOC_FSGETXATTRn               14a
5>1402f="fs/xfs/xfde=ops"  class=s="sref">am_hre_t /ioc_fsgetxattrmulti_handlereq_t /ioc_fsgetxattrclassref">arg /a>)n__user argmulti_handlereqargctl.)c#L538" idueL538" class="line" 14a3lueL60014a
593 /a>               14a
5>140a href="+codecasea    6f ( a hrefde=EIOC_FSGETXATTRA( a href="+codede=EIOC_FSGETXATTRAn               14a
5>140                  a h class=s="sref">am_hre_t /ioc_fsgetxattrmulti_handlereq_t /ioc_fsgetxattrclassref">arg /a>)n__user argmulti_handlereqargctl.)c#L538" idueL538" class="line" 14a5lueL60014a
595 /a>               14a
5>1405        breacasea    6f ( a hrefde=EIOC_FSSETXATTRf="+code=MAXNAMde=EIOC_FSSETXATTRn               14a
5>140 break;nam_hre_t /ioc_fssetxattrmulti_handlereq_t /ioc_fssetxattrclassref">arg /a>)narg /a>)narg /a>)n               14a
5>140:n               14a
5>140  a href="+coef="fs/x class=s="sref">am_hre_t /ioc_getx"+cIO_a> IS href="fs_t /ioc_getx"+cIOclassref">arg /a>)narg /a>)n               14a
5>1409de=copy_fromcasea    6f ( a hrefde=EIOC_SETXFLAGef="+code=MAXNAMde=EIOC_SETXFLAGen
610 /a>        return 14>
6>141s a href="+code=ops"  class=s="sref">am_hreclasioc_setx"+cIO_a> IS href="fs_t /ioc_setx"+cIOclassref">arg /a>)narg /a>)narg /a>)n
611 /a>}n
612 /a>n
613 /a>intn__user fsdmidata_a> IS href="fsfsdmidata            ref">ops /a>[ admi_a> IS href="fsdmin
614 /a> a href="+code=14>
6>141     #L538" idueL538" class="line" 14>5lueL60014>
615 /a>        struct 14>
6>1415        brea/xfs/xfs_user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ admi_a> IS href="fsdmin__user argmulti_handlereqargctl., op_aofsref">ops /a>[ admi_a> IS href="fsdmin6lueL60014>
616 /a>        struct 14>
6>141 break;nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 14>7lueL60014>
617 /a>        struct 14>
6>14161" class="line"|narg /a>)narg /a>)n9lueL60014>
619 /a>        unsigne14>
6>141ef="fs/xfs/xfs_ioctl._user" class="sref"errormulti_handlereqerrorhref)#L538" idueL538" class="line" 142mlueL60014>
620 /a>         a href14>
6>142s a href="+code=ops" class=== class=s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1421lueL60014ref="+carg /a>)n IS href="fs_t /set_dmattrOclassref">arg /a>)narg /a>)n IS href="fsdminops /a>,  fsd_dmevmaskmulti_handlereqfsd_dmevmaskctl.,#L538" idueL538" class="line" 1423lueL60014P_GET"s19ef="+code=ops" 14P_G>142             de=ops"         de=ops" ref">arg /a>)n IS href="fsdminops /a>,  fsd_dmstar4multi_handlereqfsd_dmstar4ctl.)c#L538" idueL538" class="line" 1424lueL60014e=PTR_ERR" class="sre   14e=P>142                  a hmulti_handlereqmnt_drop_write_fil4multi_handlereqmnt_drop_write_fil4classref">arg /a>)nnam_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1426lueL60014
528 /a>        14l.c>1428de=copy_fromcasea    6f ( a hrefde=EIOC_GETBMAPf="+code=MAXNAMde=EIOC_GETBMAPn               i_m=144 />143s a href="+code=ops"  class=s="sref">am_hreclasioc_getbmap_a> IS href="fs_t /ioc_getbmapclassref">arg /a>)narg /a>)n IS href="fsso"+cIOctl.,omulti_handlereqcmhref="fs/xfs/xfscmhctl., ref">arg /a>)n
535 /a>               14>
5>143     #L538" idueL538" class="line" 1432lueL60014class="line" namlueL543"14cla>143  a href="+cocasea    6f ( a hrefde=EIOC_GETBMAPXf="+code=MAXNAMde=EIOC_GETBMAPXctl.:#L547" idueL547" class="line" 1433lueL60014r /a>(& a href="+cod14r />143             de=ops"  class=s="sref">am_hre_t /ioc_getbmapx_a> IS href="fsclasioc_getbmapxclassref">arg /a>)narg /a>)n1435        breacasea    6f ( a hrefde=EIOC_FD_TO_HANDL multi_handlereqde=EIOC_FD_TO_HANDL ctl.:#L547" idueL547" class="line" 1436lueL60014r /a>(& a href="+cod14r />143ode=copy_fromcasea    6f ( a hrefde=EIOC_PATH_TO_HANDL multi_handlereqde=EIOC_PATH_TO_HANDL ctl.:#L547" idueL547" class="line" 1437lueL60014>               f_m=ef="14>  >143:n
538 /a>n>143  a href="+coef="fs/xref">arg /a>)narg /a>)n<">aqmulti_handlereq">aqhrefc#L538" idueL538" class="line" 1439lueL600149">
BADFmp; a href="+cod149">>143ef="f#L538" idueL538" class="line" 144mlueL60014am_xfsSREc="line" namlue14am_>144s a href="+code=ops" _user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ a">aqmulti_handlereq">aqhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ a">aqmulti_handlereq">aqhref)).#L572" idueL572" class="line" 1441lueL60014lass="lineam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1442lueL60014>
e" namlueL600">
600 /a14>
e>1442f="fs/xfs/xfde=ops"  class=s="sref">am_hre_t /find_handlamulti_handlereq_t /find_handlaclassref">arg /a>)nops /a>[ a">aqmulti_handlereq">aqhref)c#L538" idueL538" class="line" 1443lueL60014las       a href="+cO_ND14las>144a href="+codec#L612" idueL612" class="line" 1444lueL60014xfs_ioctl.c#L561" idueL514xfs>1444nam_hre_t /fsop_handlareqtrmulti_handlereq_t /fsop_handlareqtr a href=ref">arg /a>)n<">aqmulti_handlereq">aqhrefc#L538" idueL538" class="line" 1446lueL60014fs_4 /a>               f14fs_>144 brea#L612" idueL612" class="line" 1447lueL60014/xfs_iocxfs_ioctl.c#L56114/xf>144:nops /a>[ a">aqmulti_handlereq">aqhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ a_t /fsop_handlareqtrmulti_handlereq_t /fsop_handlareqtr a h)).#L572" idueL572" class="line" 1448lueL60014dle /a>(n144  a href="+coef="fs/x/xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1449lueL60014ti         a href="+c a>14ti >144ef="fs/xfs/xfs_ioctl. class=s="sref">am_hreclasopen_by_handlamulti_handlereq_t /open_by_handlaclassref">arg /a>)nops /a>[ a">aqmulti_handlereq">aqhref)c#L538" idueL538" class="line" 145mlueL60014fs/xfs_iocxfs_ioctl.c#L514fs/>145
n(n145         breacasea    6f ( a hrefde=EIOC_FSSETDM_BY_HANDL multi_handlereqde=EIOC_FSSETDM_BY_HANDL ctl.:#L547" idueL547" class="line" 1452lueL60014>
552 /a>         a href14>
5>1452f="fs/xfs/xfde=ops"  class=s="sref">am_hre_t /fssetdm_by_handlamulti_handlereq_t /fssetdm_by_handlaclassref">arg /a>)narg /a>)n
553 /a>        if ( a 14>
5>145     #L612" idueL612" class="line" 1454lueL60014>
554 /a>               14>
5>1454n
555 /a>               14>
5>1455        brea/xfs/xfss="sref">am_hre_t /fsop_handlareqtrmulti_handlereq_t /fsop_handlareqtr a href=ref">arg /a>)n<">aqmulti_handlereq">aqhrefc#L538" idueL538" class="line" 1456lueL60014>
556 /a>        }n
5>145 brea#L612" idueL612" class="line" 1457lueL60014>
557 /a>nops /a>[ a">aqmulti_handlereq">aqhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ a_t /fsop_handlareqtrmulti_handlereq_t /fsop_handlareqtr a h)).#L572" idueL572" class="line" 1458lueL60014>
558 /a>         a href14>
5>145  a href="+coef="fs/x/xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1459lueL60014>
559 /a>        if (! a14>
5>145ef="fs/xfs/xfs_ioctl. class=s="sref">am_hreclasread a k_by_handlamulti_handlereq_t /read a k_by_handlaclassref">arg /a>)nops /a>[ a">aqmulti_handlereq">aqhref)c#L538" idueL538" class="line" 146mlueL60014>
560 /a>               14>
5>146
n
561 /a>n
562 /a>         a href14>
5>1462f="fs/xfs/xfde=ops"  class=s="sref">am_hre_t /attrlist_by_handlamulti_handlereq_t /attrlist_by_handlaclassref">arg /a>)narg /a>)n
563 /a>        for ( a14>
5>146     #L612" idueL612" class="line" 1464lueL60014>
564 /a>               14>
5>1464n
565 /a>               14>
5>1465        brea/xfs/xfs class=s="sref">am_hre_t /attrmulti_by_handlamulti_handlereq_t /attrmulti_by_handlaclassref">arg /a>)narg /a>)n
566 /a>               14>
5>146 brea#L612" idueL612" class="line" 14>7lueL60014>
567 /a>               14>
5>146:n8lueL60014>
568 /a>               14>
5>146  a href="+coef="fs/xstructo="sref">__user _t /swapexrmulti_handlereq_t /swapexr a href="+="sref">__user sxref="fs/xfs/xfs_sxrhrefc#L538" idueL538" class="line" 1469lueL60014>
569 /a>               14>
5>146ef="f#L538" idueL538" class="line" 147mlueL60014>
570 /a>nops /a>[ asxref="fs/xfs/xfs_sxrhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ a_t /swapexrtrmulti_handlereq_t /swapexrtr a h)).#L572" idueL572" class="line" 1471lueL60014>
571 /a>               14>
5>147         break;nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1472lueL60014>
572 /a>               14>
5>1472f="fs/xfs/xfde=ops" ref">arg /a>)narg /a>)n
573 /a>               14>
5>147             de=ops" _user" class="sref"errormulti_handlereqerrorhref)#L538" idueL538" class="line" 1474lueL60014>
574 /a>               14>
5>147                  a h/xfs/xfs class=s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1475lueL60014>
575 /a>               14>
5>1475        brea/xfs/xfss="sref">am_hreerrormulti_handlereqerrorhrefT"smulti_handlereqclasswapexrmulti_handlereq_t /swapexr a hsss="sref">ops /a>[ asxref="fs/xfs/xfs_sxrhref)c#L538" idueL538" class="line" 1476lueL60014>
576 /a>               14>
5>147 break;narg /a>)n
577 /a>               14>
5>147:nam_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1478lueL60014>
578 /a>               14>
5>147  a href="+coc#L612" idueL612" class="line" 1479lueL60014>
579 /a>               14>
5>147ef="f#L538" idueL538" class="line" 148mlueL60014>
580 /a>               14>
5>148s a href="+cocasea    6f ( a hrefde=EIOC_FSCOUNTef="+code=MAXNAMde=EIOC_FSCOUNTen1lueL60014>
581 /a>               14>
5>148         break;n_t /fsop_countstrmulti_handlereq_t /fsop_countstr     " class="sref">ourmulti_handlereqourhrefc#L538" idueL538" class="line" 1482lueL60014>
582 /a>               14>
5>1482octl.c#L539" idueL539" class="line1483lueL60014>
583 /a>               14>
5>148             de=ops" s="sref">am_hreerrormulti_handlereqerrorhrefT"smulti_handlereqclaslascountsmulti_handlereq_t /fsscountsclassref">arg /a>)nops /a>[ aourmulti_handlereqourhref)c#L538" idueL538" class="line" 1484lueL60014>
584 /a>               14>
5>148                  a h_user" class="sref"errormulti_handlereqerrorhref)#L538" idueL538" class="line" 1485lueL60014>
585 /a>               14>
5>1485        brea/xfs/xfs/xfs/xfs class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1486lueL60014>
586 /a>               14>
5>148 brea#L612" idueL612" class="line" 1487lueL60014>
587 /a>               14>
5>148:narg /a>)nops /a>[ aourmulti_handlereqourhref, op_aofsref">ops /a>[ aourmulti_handlereqourhref)).#L572" idueL572" class="line" 1488lueL60014>
588 /a>               14>
5>148  a href="+coef="fs/x/xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1489lueL60014>
589 /a>               14>
5>148ef="fs/xfs/xfs_ioctl. class=0c#L538" idueL538" class="line" 149mlueL60014>
590 /a>               14>
5>149
n
591 /a>               14>
5>149     #L538" idueL538" class="line" 1492lueL60014>
592 /a>               14>
5>149  a href="+cocasea    6f ( a hrefde=EIOC_SET_RESBLKef="+code=MAXNAMde=EIOC_SET_RESBLKen
593 /a>               14>
5>149             de=ops" " class="sref">_t /fsop_resblkstrmulti_handlereq_t /fsop_resblkstr     " class="sref">inourmulti_handlereqinourhrefc#L538" idueL538" class="line" 1494lueL60014>
594 /a>               14>
5>149                  a hmulti_handlereq__uint64trmulti_handlereq__uint64tr             " class="sref">inmulti_handlereqinhrefc#L538" idueL538" class="line" 1495lueL60014>
595 /a>               14>
5>149ode=copy_from_user" class="sref">co1496lueL60014>
596 /a>               14>
5>149 break;narg /a>)nco1497lueL60014>
597 /a>               14>
5>149:nam_hreEPERMmulti_handlereqEPERMhrefc#L538" idueL538" class="line" 1498lueL60014>
598 /a>               14>
5>149ioctl.c#L539" idueL539" class="line1499lueL60014>
599 /a>               14>
5>149ef="fs/xfs/xfs_ioctl._user" class="sref"m6user" crohref="moctl.>        6f ( a hrefm_"+cIO_a> IS href="fsm_"+cIOf="fsf="+ca    6f ( a hrefde=EMOUNT_RDONLYf="+code=MAXNAMde=EMOUNT_RDONLYhref)#L538" idueL538" class="line" 15amlueL60015amlu9 /a>               15aml>150s a href="+code=ops" /xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n               15a
5>150     #L538" idueL538" class="line" 1502lueL60015a
592 /a>               15a
5>1502f="fs/xfs/xfde=ops" _user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ ainourmulti_handlereqinourhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ ainourmulti_handlereqinourhref)).#L572" idueL572" class="line" 15a3lueL60015a
593 /a>               15a
5>150             de=ops"          class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1504lueL60015a
594 /a>               15a
5>150     #L538" idueL538" class="line" 15a5lueL60015a
595 /a>               15a
5>1505        brea/xfs/xfss="sref">am_hreerrormulti_handlereqerrorhrefT"smulti_handlereqmnt_waco_write_fil4multi_handlereqmnt_waco_write_fil4classref">arg /a>)n               15a
5>150 break;n               15a
5>150:nam_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1508lueL60015a
598 /a>               15a
5>150ioctl.c#L539" idueL539" class="line15a9lueL60015a
599 /a>               15a
5>150ef="fs/xfs/xfs_ioctl.=flow check */ /spaion151mlueL60015>
610 /a>        return 15>
6>151s a href="+code=ops" " class="sref">inmulti_handlereqinhref "smulti_handlereqsnourmulti_handlereqinourhrefsref">ops /a>,  resblksmulti_handlereqresblkshrefc#L538" idueL538" class="line" 1511lueL60015>
611 /a>}nerrormulti_handlereqerrorhrefT"smulti_handlereqclasreserve_blocksmulti_handlereq_t /reserve_blocksclassref">arg /a>)nops /a>[ ainmulti_handlereqinhref, ss="sref">ops /a>[ ainourmulti_handlereqinourhref)c#L538" idueL538" class="line" 1512lueL60015>
612 /a>narg /a>)narg /a>)n
613 /a>intn
614 /a> a href="+code=15>
6>151                  a h/xfs/xfs class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 15>5lueL60015>
615 /a>        struct 15>
6>151ode=copy_from_user" class="sref">co15>6lueL60015>
616 /a>        struct 15>
6>151 break;narg /a>)nops /a>[ ainourmulti_handlereqinourhref, op_aofsref">ops /a>[ ainourmulti_handlereqinourhref)).#L572" idueL572" class="line" 15>7lueL60015>
617 /a>        struct 15>
6>151:nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 15>8lueL60015>
618 /a>        int    15>
6>151  a href="+coef="fs/x class=0c#L538" idueL538" class="line" 15>9lueL60015>
619 /a>        unsigne15>
6>151ef="fs/xfs/xfc#L612" idueL612" class="line" 152mlueL60015>
620 /a>         a href15>
6>152 f="f#L612" idueL612" class="line" 1521lueL60015ref="+carg /a>)n<_t /fsop_resblkstrmulti_handlereq_t /fsop_resblkstr     " class="sref">ourmulti_handlereqourhrefc#L538" idueL538" class="line" 1523lueL60015P_GET"s19ef="+code=ops" 15P_G>152     #L612" idueL612" class="line" 1524lueL60015e=PTR_ERR" class="sre   15e=P>152                  a h_use!r" class="sref"capabl4multi_handlereqcapabl4classref">arg /a>)nco1525lueL60015xfs/12 /a>nam_hreEPERMmulti_handlereqEPERMhrefc#L538" idueL538" class="line" 1526lueL60015am_hreerrormulti_handlereqerrorhrefT"smulti_handlereqclasreserve_blocksmulti_handlereq_t /reserve_blocksclassref">arg /a>)narg /a>)nops /a>[ aourmulti_handlereqourhref)c#L538" idueL538" class="line" 1528lueL60015l.c#L8">
528 /a>        15l.c>152  a href="+coef="fs/x_user" class="sref"errormulti_handlereqerrorhref)#L538" idueL538" class="line" 1529lueL60015 >=  a href="+code=IN15 &g>152ef="fs/xfs/xfs_ioctl./xfs/xfs class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 153mlueL600154 /a>               i_m=154 />153 f="f#L612" idueL612" class="line" 1531lueL60015>
535 /a>               15>
5>153         break;narg /a>)nops /a>[ aourmulti_handlereqourhref, op_aofsref">ops /a>[ aourmulti_handlereqourhref)).#L572" idueL572" class="line" 1532lueL60015class="line" namlueL543"15cla>1532f="fs/xfs/xfde=ops" /xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1533lueL60015r /a>(& a href="+cod15r />153     #L612" idueL612" class="line" 1534lueL60015s       a href="+cnode /15s  >153                  a h class=0c#L538" idueL538" class="line" 1535lueL60015ioctl="line" namlueL543"15ioc>1535        breac#L612" idueL612" class="line" 1536lueL60015r /a>(& a href="+cod15r />153 brea#L612" idueL612" class="line" 1537lueL60015>               f_m=ef="15>  >153:n
538 /a>n>153  a href="+coef="fs/xref">arg /a>)ninmulti_handlereqinhrefc#L538" idueL538" class="line" 1539lueL600159">
BADFmp; a href="+cod159">>153ef="f#L538" idueL538" class="line" 154mlueL60015am_xfsSREc="line" namlue15am_>154s a href="+code=ops" _user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ ainmulti_handlereqinhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ ainmulti_handlereqinhref)).#L572" idueL572" class="line" 1541lueL60015lass="lineam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1542lueL60015>
e" namlueL600">
600 /a15>
e>1542octl.c#L539" idueL539" class="line1543lueL60015las       a href="+cO_ND15las>154             de=ops" s="sref">am_hreerrormulti_handlereqerrorhrefT"smulti_handlereqmnt_waco_write_fil4multi_handlereqmnt_waco_write_fil4classref">arg /a>)n154                  a h_user" class="sref"errormulti_handlereqerrorhref)#L538" idueL538" class="line" 1545lueL60015am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1546lueL60015fs_4 /a>               f15fs_>154 break;narg /a>)nops /a>[ ainmulti_handlereqinhref)c#L538" idueL538" class="line" 1547lueL60015/xfs_iocxfs_ioctl.c#L56115/xf>154:narg /a>)narg /a>)n(n154  a href="+coef="fs/x class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1549lueL60015ti         a href="+c a>15ti >154ef="fs/xfs/xfc#L612" idueL612" class="line" 155mlueL60015fs/xfs_iocxfs_ioctl.c#L515fs/>155 f="f#L612" idueL612" class="line" 1551lueL60015ERle /a>(n155         breacasea    6f ( a hrefde=EIOC_FSGROWFSLOG( a href="+codede=EIOC_FSGROWFSLOGn
552 /a>         a href15>
5>1552f="fs/xfs/xfde=ops" multi_handlereqclasgrowlaslogtrmulti_handlereq_t /growlaslogtr     " class="sref">inmulti_handlereqinhrefc#L538" idueL538" class="line" 1553lueL60015>
553 /a>        if ( a 15>
5>155     #L612" idueL612" class="line" 1554lueL60015>
554 /a>               15>
5>155                  a h_user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ ainmulti_handlereqinhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ ainmulti_handlereqinhref)).#L572" idueL572" class="line" 1555lueL60015>
555 /a>               15>
5>1555        brea/xfs/xfsef="fs/x class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1556lueL60015>
556 /a>        }n
5>155 brea#L612" idueL612" class="line" 1557lueL60015>
557 /a>nam_hreerrormulti_handlereqerrorhrefT"smulti_handlereqmnt_waco_write_fil4multi_handlereqmnt_waco_write_fil4classref">arg /a>)n
558 /a>         a href15>
5>155  a href="+coef="fs/x_user" class="sref"errormulti_handlereqerrorhref)#L538" idueL538" class="line" 1559lueL60015>
559 /a>        if (! a15>
5>155ef="fs/xfs/xfs_ioctl.ef="fs/x class=s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 156mlueL60015>
560 /a>               15>
5>156s a href="+code=ops" " class="sref">errormulti_handlereqerrorhrefT"smulti_handlereqclasgrowlaslogmulti_handlereq_t /growlaslogclassref">arg /a>)nops /a>[ ainmulti_handlereqinhref)c#L538" idueL538" class="line" 1561lueL60015>
561 /a>nmnt_drop_write_fil4multi_handlereqmnt_drop_write_fil4classref">arg /a>)n
562 /a>         a href15>
5>1562f="fs/xfs/xfde=ops"  class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1563lueL60015>
563 /a>        for ( a15>
5>156a href="+codec#L612" idueL612" class="line" 1564lueL60015>
564 /a>               15>
5>156     #L538" idueL538" class="line" 1565lueL60015>
565 /a>               15>
5>1565        breacasea    6f ( a hrefde=EIOC_FSGROWFSRTmulti_handlereqde=EIOC_FSGROWFSRTn
566 /a>               15>
5>156 break;ninmulti_handlereqinhrefc#L538" idueL538" class="line" 15>7lueL60015>
567 /a>               15>
5>15661" class="line"|nops /a>[ ainmulti_handlereqinhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ ainmulti_handlereqinhref)).#L572" idueL572" class="line" 1569lueL60015>
569 /a>               15>
5>156ef="fs/xfs/xfs_ioctl./xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 157mlueL60015>
570 /a>n
571 /a>               15>
5>157         break;nam_hreerrormulti_handlereqerrorhrefT"smulti_handlereqmnt_waco_write_fil4multi_handlereqmnt_waco_write_fil4classref">arg /a>)n
572 /a>               15>
5>1572f="fs/xfs/xfde=ops" _user" class="sref"errormulti_handlereqerrorhref)#L538" idueL538" class="line" 1573lueL60015>
573 /a>               15>
5>157             de=ops" /xfs/xfs class=s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1574lueL60015>
574 /a>               15>
5>157                  a h" class="sref">errormulti_handlereqerrorhrefT"smulti_handlereqclasgrowlasrrmulti_handlereq_t /growlasrrclassref">arg /a>)nops /a>[ ainmulti_handlereqinhref)c#L538" idueL538" class="line" 1575lueL60015>
575 /a>               15>
5>1575        brea/xfs/xfss="sref">am_hremnt_drop_write_fil4multi_handlereqmnt_drop_write_fil4classref">arg /a>)n
576 /a>               15>
5>157 break;nam_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1577lueL60015>
577 /a>               15>
5>157:n
578 /a>               15>
5>157ioctl.c#L539" idueL539" class="line1579lueL60015>
579 /a>               15>
5>1579de=copy_fromcasea    6f ( a hrefde=EIOC_GOINGDOWNf="+code=MAXNAMde=EIOC_GOINGDOWNn
580 /a>               15>
5>158s a href="+code=ops" " class="sref">__uint32trmulti_handlereq__uint32tr     " class="sref">inmulti_handlereqinhrefc#L538" idueL538" class="line" 15>1lueL60015>
581 /a>               15>
5>158     #L538" idueL538" class="line" 1582lueL60015>
582 /a>               15>
5>1582f="fs/xfs/xfde=ops" _use!r" class="sref"capabl4multi_handlereqcapabl4classref">arg /a>)nco1583lueL60015>
583 /a>               15>
5>158             de=ops" ef="fs/x class=-s="sref">am_hreEPERMmulti_handlereqEPERMhrefc#L538" idueL538" class="line" 1584lueL60015>
584 /a>               15>
5>158     #L538" idueL538" class="line" 1585lueL60015>
585 /a>               15>
5>1585        brea/xfs/xfs_user" class="sref"get_req"ef="fs/xfs/xfs_get_req"classref">arg /a>)narg /a>)n<__uint32trmulti_handlereq__uint32tr     " class="sref">__req"ef="fs/xfs/xfs___req"clas *)="sref">__user argmulti_handlereqargctl.))opy_from_user" class="sref">co1586lueL60015>
586 /a>               15>
5>158 break;nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 1587lueL60015>
587 /a>               15>
5>15861" class="line"|nerrormulti_handlereqerrorhrefT"smulti_handlereqclast /goingdownmulti_handlereqclast /goingdownclassref">arg /a>)nops /a>[ ainmulti_handlereqinhref)c#L538" idueL538" class="line" 1589lueL60015>
589 /a>               15>
5>158ef="fs/xfs/xfs_ioctl. class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 159mlueL60015>
590 /a>               15>
5>159
n
591 /a>               15>
5>159     #L538" idueL538" class="line" 1592lueL60015>
592 /a>               15>
5>159  a href="+cocasea    6f ( a hrefde=EIOC_ERRO>_INJECTIONf="+code=MAXNAMde=EIOC_ERRO>_INJECTIONn
593 /a>               15>
5>159             de=ops" " class="sref">_t /error_injectiontrmulti_handlereq_t /error_injectiontr     " class="sref">inmulti_handlereqinhrefc#L538" idueL538" class="line" 1594lueL60015>
594 /a>               15>
5>159     #L538" idueL538" class="line" 1595lueL60015>
595 /a>               15>
5>1595        brea/xfs/xfs_use!r" class="sref"capabl4multi_handlereqcapabl4classref">arg /a>)nco1596lueL60015>
596 /a>               15>
5>159 break;nam_hreEPERMmulti_handlereqEPERMhrefc#L538" idueL538" class="line" 1597lueL60015>
597 /a>               15>
5>15961" class="line"|nops /a>[ ainmulti_handlereqinhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ ainmulti_handlereqinhref)).#L572" idueL572" class="line" 1599lueL60015>
599 /a>               15>
5>159ef="fs/xfs/xfs_ioctl./xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 16amlueL60016amlu9 /a>               16aml>160 f="f#L612" idueL612" class="line" 1601lueL60016a
591 /a>               16a
5>160         break;nerrormulti_handlereqerrorhrefT"smulti_handlereqclaserrortag_adhref="fs/xfs/xfsclaserrortag_adhclassref">arg /a>)nops /a>,  errtagmulti_handlereqerrtaghref, ="sref">__user m6user" crohref="moctl.)c#L538" idueL538" class="line" 16a2lueL60016a
592 /a>               16a
5>1602f="fs/xfs/xfde=ops"  class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 16a3lueL60016a
593 /a>               16a
5>160a href="+codec#L612" idueL612" class="line" 1604lueL60016a
594 /a>               16a
5>160     #L538" idueL538" class="line" 16a5lueL60016a
595 /a>               16a
5>1605        breacasea    6f ( a hrefde=EIOC_ERRO>_CLEARALLuser" crohref="de=EIOC_ERRO>_CLEARALLn               16a
5>160 break;narg /a>)nco16a7lueL60016a
597 /a>               16a
5>160:nam_hreEPERMmulti_handlereqEPERMhrefc#L538" idueL538" class="line" 1608lueL60016a
598 /a>               16a
5>160ioctl.c#L539" idueL539" class="line16a9lueL60016a
599 /a>               16a
5>160ef="fs/xfs/xfs_ioctl.= class="sref">errormulti_handlereqerrorhrefT"smulti_handlereqclaserrortag_clearallref="fs/xfs/xfsclaserrortag_clearallclassref">arg /a>)n
610 /a>        return 16>
6>161s a href="+code=ops"  class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 1611lueL60016>
611 /a>}n
612 /a>n
613 /a>intn__user _t /aofblocksmulti_handlereq_t /aofblocks     " class="sref">aofbmulti_handlereqeofbhrefc#L538" idueL538" class="line" 1614lueL60016>
614 /a> a href="+code=16>
6>161     #L538" idueL538" class="line" 16>5lueL60016>
615 /a>        struct 16>
6>1615        brea/xfs/xfs_user" class="sref"copy_from_req"ef="fs/xfs/xfs_copy_from_req"classss="sref">ops /a>[ aaofbmulti_handlereqeofbhref, ="sref">__user argmulti_handlereqargctl., op_aofsref">ops /a>[ aaofbmulti_handlereqeofbhref)).#L572" idueL572" class="line" 16>6lueL60016>
616 /a>        struct 16>
6>161 break;nam_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n IS href="fsEFAULThref)c#L538" idueL538" class="line" 16>7lueL60016>
617 /a>        struct 16>
6>16161" class="line"|nops /a>,  eof_versionmulti_handlereqeof_version a hr!"smulti_handlereqde=EEOFBLOCKe_VERSIONf="+code=MAXNAMde=EEOFBLOCKe_VERSIONhref)#L538" idueL538" class="line" 16>9lueL60016>
619 /a>        unsigne16>
6>161ef="fs/xfs/xfs_ioctl./xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n
620 /a>         a href16>
6>162 f="f#L612" idueL612" class="line" 1621lueL60016ref="+cops /a>,  eof_"+cIO_a> IS href="fseof_"+cIO     f="+ca~multi_handlereqde=EEOF_FLAGe_VALIDf="+code=MAXNAMde=EEOF_FLAGe_VALIDhref)#L538" idueL538" class="line" 1622lueL60016href="fs/xfs/xfs_ioctl.c16hre>1622f="fs/xfs/xfde=ops" /xfs/xfs class=-s="sref">am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n162     #L612" idueL612" class="line" 1624lueL60016e=PTR_ERR" class="sre   16e=P>162                  a h_useref">arg /a>)nops /a>[ aaofbmulti_handlereqeofbhrefsref">ops /a>,  padclass="linedlereqpadclctl., 0, op_aofsref">ops /a>[ aaofbmulti_handlereqeofbhrefsref">ops /a>,  padclass="linedlereqpadclctl.)) ||#L612" idueL612" class="line" 1625lueL60016xfs/12 /a>narg /a>)nops /a>[ aaofbmulti_handlereqeofbhrefsref">ops /a>,  pad>
564 /a>  dlereqpad6     , 0, op_aofsref">ops /a>[ aaofbmulti_handlereqeofbhrefsref">ops /a>,  pad>
564 /a>  dlereqpad6     )).#L572" idueL572" class="line" 1626lueL60016am_hrede=EERRO>( a href="+codede=EERRO>classref">arg /a>)n
528 /a>        16l.c>162  a href="+coef="fs/x= class="sref">errormulti_handlereqerrorhrefT"smulti_handlereqclasicache_free/aofblocksmulti_handlereq_t /icache_free/aofblocksclassref">arg /a>)nops /a>[ aaofbmulti_handlereqeofbhref)c#L538" idueL538" class="line" 1629lueL60016 >=  a href="+code=IN16 &g>162ef="fs/xfs/xfs_ioctl. class=-s="sref">am_hreerrormulti_handlereqerrorhrefc#L538" idueL538" class="line" 163mlueL600164 /a>               i_m=164 />163
n
535 /a>               16>
5>163     #L538" idueL538" class="line" 1632lueL60016class="line" namlueL543"16cla>1632f="fs/xfs/xfdefault:#L538" idueL538" class="line" 1633lueL60016r /a>(& a href="+cod16r />163             de=ops"  class=-s="sref">am_hreENOTTYf="+code=MAXNAMENOTTYhrefc#L538" idueL538" class="line" 1634lueL60016s       a href="+cnode /16s  >163             c#L612" idueL612" class="line" 1635lueL60016ioctl="line" namlueL543"16ioc>1635    c#L612" idueL612" class="line" 1636lueL60016r /a>(& a href="+cod16r />163 brea


(&footq"e> The original LXR software by thea 6f ( http://sourceforge.net/projects/lx"e>LXR / /sunityctl., this experispaial version by 6f ( mailto:lx"@ a ux.no">lx"@ a ux.nohrefs
(&subfootq"e> lx". a ux.no kindly hosted by 6f ( http://www.redpill- a pro.no">Redpill La pro ASctl., provideroof La ux / nsulting and operations services since 1995.