diff options
author | Yang Sheng <yang.sheng@intel.com> | 2015-03-25 21:53:22 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-03-26 11:10:25 +0100 |
commit | 397632e467d195a268ac3c5adfd7de32e92bd864 (patch) | |
tree | 8279ba6f7f489399ae4caf99c0cd6fad3d7fd3b2 /drivers/staging/lustre/lustre/lov/lov_internal.h | |
parent | 4345abb2c3b56eae9bcf4728dcdc0f584690c8aa (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.h | 12 |
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 |