xfs: compat_xfs_bstat does not have forkoff
authorDave Chinner <dchinner@redhat.com>
Wed, 1 Oct 2014 23:17:58 +0000 (09:17 +1000)
committerDave Chinner <david@fromorbit.com>
Wed, 1 Oct 2014 23:17:58 +0000 (09:17 +1000)
struct compat_xfs_bstat is missing the di_forkoff field and so does
not fully translate the structure correctly. Fix it.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_ioctl32.c
fs/xfs/xfs_ioctl32.h

index a554646ff141479eeea453ff7899bdd8e91d92b8..94ce027e28e3df8edac1609318604b0d74877266 100644 (file)
@@ -160,6 +160,7 @@ xfs_ioctl32_bstat_copyin(
            get_user(bstat->bs_gen,     &bstat32->bs_gen)       ||
            get_user(bstat->bs_projid_lo, &bstat32->bs_projid_lo) ||
            get_user(bstat->bs_projid_hi, &bstat32->bs_projid_hi) ||
+           get_user(bstat->bs_forkoff, &bstat32->bs_forkoff)   ||
            get_user(bstat->bs_dmevmask, &bstat32->bs_dmevmask) ||
            get_user(bstat->bs_dmstate, &bstat32->bs_dmstate)   ||
            get_user(bstat->bs_aextents, &bstat32->bs_aextents))
@@ -214,6 +215,7 @@ xfs_bulkstat_one_fmt_compat(
            put_user(buffer->bs_gen,      &p32->bs_gen)         ||
            put_user(buffer->bs_projid,   &p32->bs_projid)      ||
            put_user(buffer->bs_projid_hi,      &p32->bs_projid_hi)     ||
+           put_user(buffer->bs_forkoff,  &p32->bs_forkoff)     ||
            put_user(buffer->bs_dmevmask, &p32->bs_dmevmask)    ||
            put_user(buffer->bs_dmstate,  &p32->bs_dmstate)     ||
            put_user(buffer->bs_aextents, &p32->bs_aextents))
index 80f4060e8970c5aa6b3d893edc206f3b340cc7ee..b1bb45444df8ac48008a1f784c248cfdcb663f88 100644 (file)
@@ -67,8 +67,9 @@ typedef struct compat_xfs_bstat {
        __u32           bs_gen;         /* generation count             */
        __u16           bs_projid_lo;   /* lower part of project id     */
 #define        bs_projid       bs_projid_lo    /* (previously just bs_projid)  */
+       __u16           bs_forkoff;     /* inode fork offset in bytes   */
        __u16           bs_projid_hi;   /* high part of project id      */
-       unsigned char   bs_pad[12];     /* pad space, unused            */
+       unsigned char   bs_pad[10];     /* pad space, unused            */
        __u32           bs_dmevmask;    /* DMIG event mask              */
        __u16           bs_dmstate;     /* DMIG state info              */
        __u16           bs_aextents;    /* attribute number of extents  */