From c28887efaa499b902d8f017afb496fe0964ab751 Mon Sep 17 00:00:00 2001 From: Bobi Jam Date: Fri, 29 Jul 2022 12:12:12 +0800 Subject: [PATCH] LU-15873 osd: heed readonly mount upon osd-ldiskfs device Mount device rdonly for scrub if instructed. Avoid write FID EA upon rdonly osd device. Signed-off-by: Bobi Jam Change-Id: I9d24bdebfa2c6a98dc583760413e957ebcf4bca7 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/48098 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin Reviewed-by: Arshad Hussain Reviewed-by: Andreas Dilger --- lustre/osd-ldiskfs/osd_handler.c | 11 +++++++---- lustre/osd-ldiskfs/osd_scrub.c | 6 ++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index a8d3d49..79934ef 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -8249,10 +8249,13 @@ static int osd_mount(const struct lu_env *env, #endif inode = osd_sb(o)->s_root->d_inode; lu_local_obj_fid(fid, OSD_FS_ROOT_OID); - rc = osd_ea_fid_set(info, inode, fid, LMAC_NOT_IN_OI, 0); - if (rc != 0) { - CERROR("%s: failed to set lma on %s root inode\n", name, dev); - GOTO(out_mnt, rc); + if (!o->od_dt_dev.dd_rdonly) { + rc = osd_ea_fid_set(info, inode, fid, LMAC_NOT_IN_OI, 0); + if (rc != 0) { + CERROR("%s: failed to set lma on %s root inode\n", + name, dev); + GOTO(out_mnt, rc); + } } if (lmd_flags & LMD_FLG_NOSCRUB) diff --git a/lustre/osd-ldiskfs/osd_scrub.c b/lustre/osd-ldiskfs/osd_scrub.c index 8c400ed..0b7a885 100644 --- a/lustre/osd-ldiskfs/osd_scrub.c +++ b/lustre/osd-ldiskfs/osd_scrub.c @@ -2622,8 +2622,10 @@ int osd_scrub_setup(const struct lu_env *env, struct osd_device *dev, scrub->os_auto_scrub_interval = interval; push_ctxt(&saved, ctxt); - filp = filp_open(osd_scrub_name, O_RDWR | - (dev->od_dt_dev.dd_rdonly ? 0 : O_CREAT), 0644); + filp = filp_open(osd_scrub_name, + (dev->od_dt_dev.dd_rdonly ? O_RDONLY : + O_RDWR | O_CREAT), + 0644); if (IS_ERR(filp)) { pop_ctxt(&saved, ctxt); RETURN(PTR_ERR(filp)); -- 1.8.3.1