ocd.ocd_connect_flags = OBD_CONNECT_IBITS | OBD_CONNECT_VERSION |
OBD_CONNECT_FID | OBD_CONNECT_AT |
- OBD_CONNECT_VBR | OBD_CONNECT_SOM |
- OBD_CONNECT_FULL20;
+ OBD_CONNECT_VBR | OBD_CONNECT_FULL20;
+
#ifdef LIBLUSTRE_POSIX_ACL
ocd.ocd_connect_flags |= OBD_CONNECT_ACL;
#endif
ocd.ocd_connect_flags = OBD_CONNECT_SRVLOCK | OBD_CONNECT_REQPORTAL |
OBD_CONNECT_VERSION | OBD_CONNECT_TRUNCLOCK |
OBD_CONNECT_FID | OBD_CONNECT_AT |
- OBD_CONNECT_SOM | OBD_CONNECT_FULL20;
+ OBD_CONNECT_FULL20;
ocd.ocd_version = LUSTRE_VERSION_CODE;
err = obd_connect(NULL, &sbi->ll_dt_exp, obd, &sbi->ll_sb_uuid, &ocd, NULL);
#define LL_SBI_LOCALFLOCK 0x200 /* Local flocks support by kernel */
#define LL_SBI_LRU_RESIZE 0x400 /* lru resize support */
#define LL_SBI_LAZYSTATFS 0x800 /* lazystatfs mount option */
+#define LL_SBI_SOM_PREVIEW 0x1000 /* SOM preview mount option */
/* default value for ll_sb_info->contention_time */
#define SBI_DEFAULT_CONTENTION_SECONDS 60
OBD_CONNECT_OSS_CAPA | OBD_CONNECT_CANCELSET|
OBD_CONNECT_FID | OBD_CONNECT_AT |
OBD_CONNECT_LOV_V3 | OBD_CONNECT_RMT_CLIENT |
- OBD_CONNECT_VBR | OBD_CONNECT_SOM |
- OBD_CONNECT_FULL20;
+ OBD_CONNECT_VBR | OBD_CONNECT_FULL20;
+
+ if (sbi->ll_flags & LL_SBI_SOM_PREVIEW)
+ data->ocd_connect_flags |= OBD_CONNECT_SOM;
#ifdef HAVE_LRU_RESIZE_SUPPORT
if (sbi->ll_flags & LL_SBI_LRU_RESIZE)
OBD_CONNECT_SRVLOCK | OBD_CONNECT_TRUNCLOCK|
OBD_CONNECT_AT | OBD_CONNECT_RMT_CLIENT |
OBD_CONNECT_OSS_CAPA | OBD_CONNECT_VBR|
- OBD_CONNECT_SOM | OBD_CONNECT_FULL20;
+ OBD_CONNECT_FULL20;
+
+ if (sbi->ll_flags & LL_SBI_SOM_PREVIEW)
+ data->ocd_connect_flags |= OBD_CONNECT_SOM;
if (!OBD_FAIL_CHECK(OBD_FAIL_OSC_CONNECT_CKSUM)) {
/* OBD_CONNECT_CKSUM should always be set, even if checksums are
*flags &= ~tmp;
goto next;
}
+ tmp = ll_set_opt("som_preview", s1, LL_SBI_SOM_PREVIEW);
+ if (tmp) {
+ *flags |= tmp;
+ goto next;
+ }
LCONSOLE_ERROR_MSG(0x152, "Unknown option '%s', won't mount.\n",
s1);
if [ x$som = x"enabled" ]; then
[ $((gl2 - gl1)) -gt 0 ] && error "no glimpse RPC is expected"
+ MOUNTOPT=`echo $MOUNTOPT | sed 's/som_preview//g'`
do_facet mgs "$LCTL conf_param $FSNAME.mdt.som=disabled"
else
[ $((gl2 - gl1)) -gt 0 ] || error "some glimpse RPC is expected"
+ MOUNTOPT="$MOUNTOPT,som_preview"
do_facet mgs "$LCTL conf_param $FSNAME.mdt.som=enabled"
fi
}
test_132() { #1028, SOM
- local num=$(get_mds_dir $DIR)
- local mymds=mds${num}
+ local num=$(get_mds_dir $DIR)
+ local mymds=mds${num}
+ local MOUNTOPT_SAVE=$MOUNTOPT
dd if=/dev/zero of=$DIR/$tfile count=1 2>/dev/null
cancel_lru_locks osc
gl1=$(get_ost_param "ldlm_glimpse_enqueue")
stat $DIR/$tfile >/dev/null
gl2=$(get_ost_param "ldlm_glimpse_enqueue")
- echo "SOM is "$som2", "$((gl2 - gl1))" glimpse RPC occured"
+ echo "====> SOM is "$som2", "$((gl2 - gl1))" glimpse RPC occured"
som_mode_switch $som2 $gl1 $gl2
+ MOUNTOPT=$MOUNTOPT_SAVE
}
run_test 132 "som avoids glimpse rpc"