/* lmm_stripe_count used to be __u32 */
        __u16 lmm_stripe_count;   /* num stripes in use for this object */
        __u16 lmm_layout_gen;     /* layout generation number */
-       char  lmm_pool_name[LOV_MAXPOOLNAME]; /* must be 32bit aligned */
+       char  lmm_pool_name[LOV_MAXPOOLNAME + 1]; /* must be 32bit aligned */
        struct lov_ost_data_v1 lmm_objects[0]; /* per-stripe data */
 };
 
        __u32 lmv_padding1;
        __u64 lmv_padding2;
        __u64 lmv_padding3;
-       char lmv_pool_name[LOV_MAXPOOLNAME];    /* pool name */
+       char lmv_pool_name[LOV_MAXPOOLNAME + 1];/* pool name */
        struct lu_fid lmv_stripe_fids[0];       /* FIDs for each stripe */
 };
 
 
 #define LOV_PATTERN_F_HOLE     0x40000000 /* there is hole in LOV EA */
 #define LOV_PATTERN_F_RELEASED 0x80000000 /* HSM released file */
 
-#define LOV_MAXPOOLNAME 16
-#define LOV_POOLNAMEF "%.16s"
+#define LOV_MAXPOOLNAME 15
+#define LOV_POOLNAMEF "%.15s"
 
 #define LOV_MIN_STRIPE_BITS 16   /* maximum PAGE_SIZE (ia64), power of 2 */
 #define LOV_MIN_STRIPE_SIZE (1 << LOV_MIN_STRIPE_BITS)
                                           * used when reading
                                           */
        };
-       char  lmm_pool_name[LOV_MAXPOOLNAME]; /* pool name */
+       char  lmm_pool_name[LOV_MAXPOOLNAME + 1];   /* pool name */
        struct lov_user_ost_data_v1 lmm_objects[0]; /* per-stripe data */
 } __packed;
 
        __u32   lum_padding1;
        __u32   lum_padding2;
        __u32   lum_padding3;
-       char    lum_pool_name[LOV_MAXPOOLNAME];
+       char    lum_pool_name[LOV_MAXPOOLNAME + 1];
        struct  lmv_user_mds_data  lum_objects[0];
 } __packed;
 
 
        __u32   lsm_md_layout_version;
        __u32   lsm_md_default_count;
        __u32   lsm_md_default_index;
-       char    lsm_md_pool_name[LOV_MAXPOOLNAME];
+       char    lsm_md_pool_name[LOV_MAXPOOLNAME + 1];
        struct lmv_oinfo lsm_md_oinfo[0];
 };
 
 
                __u32 lw_pattern;         /* striping pattern (RAID0, RAID1) */
                __u16 lw_stripe_count;  /* number of objects being striped over */
                __u16 lw_layout_gen;       /* generation of the layout */
-               char  lw_pool_name[LOV_MAXPOOLNAME]; /* pool name */
+               char  lw_pool_name[LOV_MAXPOOLNAME + 1]; /* pool name */
        } lsm_wire;
 
        struct lov_oinfo *lsm_oinfo[0];
 
                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_layout_gen));
        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_layout_gen) == 2, "found %lld\n",
                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_layout_gen));
-       CLASSERT(LOV_MAXPOOLNAME == 16);
+       CLASSERT(LOV_MAXPOOLNAME == 15);
        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_pool_name[16]) == 48, "found %lld\n",
                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_pool_name[16]));
        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pool_name[16]) == 1, "found %lld\n",