Whamcloud - gitweb
LU-12511 lov: use lov_pattern_support() to verify lmm 91/38791/5
authorJames Simmons <jsimmons@infradead.org>
Tue, 9 Jun 2020 22:39:06 +0000 (18:39 -0400)
committerOleg Drokin <green@whamcloud.com>
Fri, 19 Jun 2020 16:50:30 +0000 (16:50 +0000)
We can use lov_pattern_support(), which is used by the server
and userland code, to ensure lmm is valid instead of open coding.

Change-Id: I44051e6e2dba2f0b7e481572bb58d776724aecd8
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/38791
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
lustre/lov/lov_ea.c

index 3f73c71..17a9b7e 100644 (file)
@@ -81,6 +81,7 @@ static loff_t lov_tgt_maxbytes(struct lov_tgt_desc *tgt)
 static int lsm_lmm_verify_v1v3(struct lov_mds_md *lmm, size_t lmm_size,
                               u16 stripe_count)
 {
 static int lsm_lmm_verify_v1v3(struct lov_mds_md *lmm, size_t lmm_size,
                               u16 stripe_count)
 {
+       u32 pattern = le32_to_cpu(lmm->lmm_pattern);
        int rc = 0;
 
        if (stripe_count > LOV_V1_INSANE_STRIPE_COUNT) {
        int rc = 0;
 
        if (stripe_count > LOV_V1_INSANE_STRIPE_COUNT) {
@@ -98,10 +99,7 @@ static int lsm_lmm_verify_v1v3(struct lov_mds_md *lmm, size_t lmm_size,
                goto out;
        }
 
                goto out;
        }
 
-       if (lov_pattern(le32_to_cpu(lmm->lmm_pattern)) != LOV_PATTERN_MDT &&
-           lov_pattern(le32_to_cpu(lmm->lmm_pattern)) != LOV_PATTERN_RAID0 &&
-           lov_pattern(le32_to_cpu(lmm->lmm_pattern)) !=
-                       (LOV_PATTERN_RAID0 | LOV_PATTERN_OVERSTRIPING)) {
+       if (!lov_pattern_supported(lov_pattern(pattern))) {
                rc = -EINVAL;
                CERROR("lov: unrecognized striping pattern: rc = %d\n", rc);
                lov_dump_lmm_common(D_WARNING, lmm);
                rc = -EINVAL;
                CERROR("lov: unrecognized striping pattern: rc = %d\n", rc);
                lov_dump_lmm_common(D_WARNING, lmm);