Diff for /xfs-linux/linux-2.6/xfs_ioctl32.c between versions 1.15 and 1.16

version 1.15, 2007/01/12 15:07:09 version 1.16, 2007/07/09 15:43:57
Line 75  xfs_ioctl32_flock( Line 75  xfs_ioctl32_flock(
         return (unsigned long)p;          return (unsigned long)p;
 }  }
   
   typedef struct compat_xfs_fsop_geom_v1 {
           __u32           blocksize;      /* filesystem (data) block size */
           __u32           rtextsize;      /* realtime extent size         */
           __u32           agblocks;       /* fsblocks in an AG            */
           __u32           agcount;        /* number of allocation groups  */
           __u32           logblocks;      /* fsblocks in the log          */
           __u32           sectsize;       /* (data) sector size, bytes    */
           __u32           inodesize;      /* inode size in bytes          */
           __u32           imaxpct;        /* max allowed inode space(%)   */
           __u64           datablocks;     /* fsblocks in data subvolume   */
           __u64           rtblocks;       /* fsblocks in realtime subvol  */
           __u64           rtextents;      /* rt extents in realtime subvol*/
           __u64           logstart;       /* starting fsblock of the log  */
           unsigned char   uuid[16];       /* unique id of the filesystem  */
           __u32           sunit;          /* stripe unit, fsblocks        */
           __u32           swidth;         /* stripe width, fsblocks       */
           __s32           version;        /* structure version            */
           __u32           flags;          /* superblock version flags     */
           __u32           logsectsize;    /* log sector size, bytes       */
           __u32           rtsectsize;     /* realtime sector size, bytes  */
           __u32           dirblocksize;   /* directory block size, bytes  */
   } __attribute__((packed)) compat_xfs_fsop_geom_v1_t;
   
   #define XFS_IOC_FSGEOMETRY_V1_32  \
           _IOR ('X', 100, struct compat_xfs_fsop_geom_v1)
   
   STATIC unsigned long xfs_ioctl32_geom_v1(unsigned long arg)
   {
           compat_xfs_fsop_geom_v1_t __user *p32 = (void __user *)arg;
           xfs_fsop_geom_v1_t __user *p = compat_alloc_user_space(sizeof(*p));
   
           if (copy_in_user(p, p32, sizeof(*p32)))
                   return -EFAULT;
           return (unsigned long)p;
   }
   
 #else  #else
   
 typedef struct xfs_fsop_bulkreq32 {  typedef struct xfs_fsop_bulkreq32 {
Line 118  xfs_compat_ioctl( Line 154  xfs_compat_ioctl(
   
         switch (cmd) {          switch (cmd) {
         case XFS_IOC_DIOINFO:          case XFS_IOC_DIOINFO:
         case XFS_IOC_FSGEOMETRY_V1:  
         case XFS_IOC_FSGEOMETRY:          case XFS_IOC_FSGEOMETRY:
         case XFS_IOC_GETVERSION:          case XFS_IOC_GETVERSION:
         case XFS_IOC_GETXFLAGS:          case XFS_IOC_GETXFLAGS:
Line 166  xfs_compat_ioctl( Line 201  xfs_compat_ioctl(
                 arg = xfs_ioctl32_flock(arg);                  arg = xfs_ioctl32_flock(arg);
                 cmd = _NATIVE_IOC(cmd, struct xfs_flock64);                  cmd = _NATIVE_IOC(cmd, struct xfs_flock64);
                 break;                  break;
           case XFS_IOC_FSGEOMETRY_V1_32:
                   arg = xfs_ioctl32_geom_v1(arg);
                   cmd = _NATIVE_IOC(cmd, struct xfs_fsop_geom_v1);
                   break;
   
 #else /* These are handled fine if no alignment issues */  #else /* These are handled fine if no alignment issues */
         case XFS_IOC_ALLOCSP:          case XFS_IOC_ALLOCSP:
Line 176  xfs_compat_ioctl( Line 215  xfs_compat_ioctl(
         case XFS_IOC_FREESP64:          case XFS_IOC_FREESP64:
         case XFS_IOC_RESVSP64:          case XFS_IOC_RESVSP64:
         case XFS_IOC_UNRESVSP64:          case XFS_IOC_UNRESVSP64:
           case XFS_IOC_FSGEOMETRY_V1:
                 break;                  break;
   
         /* xfs_bstat_t still has wrong u32 vs u64 alignment */          /* xfs_bstat_t still has wrong u32 vs u64 alignment */

Removed from v.1.15  
changed lines
  Added in v.1.16


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>