summaryrefslogtreecommitdiff
path: root/drivers/staging/lustre/lustre/lov/lov_internal.h
diff options
context:
space:
mode:
authorYang Sheng <yang.sheng@intel.com>2015-03-25 21:53:22 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-03-26 11:10:25 +0100
commit397632e467d195a268ac3c5adfd7de32e92bd864 (patch)
tree8279ba6f7f489399ae4caf99c0cd6fad3d7fd3b2 /drivers/staging/lustre/lustre/lov/lov_internal.h
parent4345abb2c3b56eae9bcf4728dcdc0f584690c8aa (diff)
staging/lustre/lov: don't crash accessing LOV object with FID{0, 0}
Some object maybe has a corrupted LOV EA or a hole in LOV EA. We should not crash client in such case. Signed-off-by: Fan Yong <fan.yong@intel.com> Signed-off-by: Yang Sheng <yang.sheng@intel.com> Reviewed-on: http://review.whamcloud.com/12740 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4958 Reviewed-by: Jian Yu <jian.yu@intel.com> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Signed-off-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/lustre/lustre/lov/lov_internal.h')
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_internal.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/staging/lustre/lustre/lov/lov_internal.h b/drivers/staging/lustre/lustre/lov/lov_internal.h
index 8c8508bbbb80..b644acc9b034 100644
--- a/drivers/staging/lustre/lustre/lov/lov_internal.h
+++ b/drivers/staging/lustre/lustre/lov/lov_internal.h
@@ -304,4 +304,16 @@ static inline struct lov_stripe_md *lsm_addref(struct lov_stripe_md *lsm)
return lsm;
}
+static inline bool lov_oinfo_is_dummy(const struct lov_oinfo *loi)
+{
+ if (unlikely(loi->loi_oi.oi.oi_id == 0 &&
+ loi->loi_oi.oi.oi_seq == 0 &&
+ loi->loi_ost_idx == 0 &&
+ loi->loi_ost_gen == 0))
+ return true;
+
+ return false;
+}
+
+
#endif