From 61b6ab5915648c423f0174f6cfdce640eee4e7ff Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Thu, 4 Dec 2014 22:21:13 +0800 Subject: [PATCH] LU-6235 osd-ldiskfs: NOT skip LMAC_NOT_IN_OI in osd_check_lma Sometimes, the ost-object may references a wrong indoe because of the invalid OI mapping. Usually, the OSD can auto detect that via osd_check_lma(). For old system, if the inode's LMV contains flag LMAC_NOT_IN_OI, it would skip related checking. But such behavior is wrong, if may cause the osd-object to reference some important system inode, and cause system crash via subsequent modification. Signed-off-by: Fan Yong Change-Id: Ib5cdf2ee4d9893a87fde3caf81109eabdad9ecfa Reviewed-on: http://review.whamcloud.com/13922 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Lai Siyao Reviewed-by: Liang Zhen Reviewed-by: Oleg Drokin --- lustre/osd-ldiskfs/osd_handler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index 369914a..a321a5e 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -524,7 +524,7 @@ static int osd_check_lma(const struct lu_env *env, struct osd_object *obj) lma->lma_incompat & ~LMA_INCOMPAT_SUPP, PFID(rfid), inode->i_ino); rc = -EOPNOTSUPP; - } else if (!(lma->lma_compat & LMAC_NOT_IN_OI)) { + } else { fid = &lma->lma_self_fid; } } -- 1.8.3.1