From c2caa40bd38e7645dc4ac90552e12e3fb7fde476 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Tue, 27 Feb 2018 18:27:40 +0000 Subject: [PATCH] Revert "LU-8856 osd: mark specific transactions netfree" This patch caused very frequent sanity-lfsck 9a failures reported in LU-10732 This reverts commit 8d1639b5cf1edbc885876956dcd6189173c00955. Change-Id: Ibf353042d2d37d37eccbf3895453f51ca07ea6d3 Reviewed-on: https://review.whamcloud.com/31442 Reviewed-by: Oleg Drokin Tested-by: Oleg Drokin --- config/lustre-build-zfs.m4 | 13 ----------- lustre/osd-zfs/osd_handler.c | 1 - lustre/osd-zfs/osd_internal.h | 4 ---- lustre/osd-zfs/osd_io.c | 1 - lustre/osd-zfs/osd_object.c | 2 -- lustre/tests/sanity.sh | 46 --------------------------------------- lustre/utils/libmount_utils_zfs.c | 3 --- 7 files changed, 70 deletions(-) diff --git a/config/lustre-build-zfs.m4 b/config/lustre-build-zfs.m4 index 6debc60..07f00dc 100644 --- a/config/lustre-build-zfs.m4 +++ b/config/lustre-build-zfs.m4 @@ -655,19 +655,6 @@ your distribution. AC_DEFINE(HAVE_DMU_OBJSET_DISOWN_3ARG, 1, [Have dmu_objset_disown() with 3 args]) ]) - dnl # - dnl # ZFS 0.7.2 adds new method dmu_tx_mark_netfree - dnl # - LB_CHECK_COMPILE([if ZFS has 'dmu_tx_mark_netfree'], - dmu_tx_mark_netfree, [ - #include - ],[ - dmu_tx_t *tx = NULL; - dmu_tx_mark_netfree(tx); - ],[ - AC_DEFINE(HAVE_DMU_TX_MARK_NETFREE, 1, - [Have dmu_tx_mark_netfree]) - ]) ]) AS_IF([test "x$enable_zfs" = xyes], [ diff --git a/lustre/osd-zfs/osd_handler.c b/lustre/osd-zfs/osd_handler.c index 23d684c..e2e9d31 100644 --- a/lustre/osd-zfs/osd_handler.c +++ b/lustre/osd-zfs/osd_handler.c @@ -977,7 +977,6 @@ int osd_unlinked_object_free(const struct lu_env *env, struct osd_device *osd, } tx = dmu_tx_create(osd->od_os); - dmu_tx_mark_netfree(tx); dmu_tx_hold_free(tx, oid, 0, DMU_OBJECT_END); osd_tx_hold_zap(tx, osd->od_unlinked->dn_object, osd->od_unlinked, FALSE, NULL); diff --git a/lustre/osd-zfs/osd_internal.h b/lustre/osd-zfs/osd_internal.h index 30beef8..5d423cc 100644 --- a/lustre/osd-zfs/osd_internal.h +++ b/lustre/osd-zfs/osd_internal.h @@ -1086,8 +1086,4 @@ osd_index_backup(const struct lu_env *env, struct osd_device *osd, bool backup) &osd->od_index_backup_stop, backup); } -#ifndef HAVE_DMU_TX_MARK_NETFREE -#define dmu_tx_mark_netfree(tx) -#endif - #endif /* _OSD_INTERNAL_H */ diff --git a/lustre/osd-zfs/osd_io.c b/lustre/osd-zfs/osd_io.c index d6a8d1f..ecbe5fe 100644 --- a/lustre/osd-zfs/osd_io.c +++ b/lustre/osd-zfs/osd_io.c @@ -1010,7 +1010,6 @@ static int osd_declare_punch(const struct lu_env *env, struct dt_object *dt, /* declare we'll free some blocks ... */ if (start < obj->oo_attr.la_size) { read_unlock(&obj->oo_attr_lock); - dmu_tx_mark_netfree(oh->ot_tx); dmu_tx_hold_free(oh->ot_tx, obj->oo_dn->dn_object, start, len); } else { read_unlock(&obj->oo_attr_lock); diff --git a/lustre/osd-zfs/osd_object.c b/lustre/osd-zfs/osd_object.c index 62f7a83..c835e92 100644 --- a/lustre/osd-zfs/osd_object.c +++ b/lustre/osd-zfs/osd_object.c @@ -762,8 +762,6 @@ static int osd_declare_destroy(const struct lu_env *env, struct dt_object *dt, oh = container_of0(th, struct osd_thandle, ot_super); LASSERT(oh->ot_tx != NULL); - dmu_tx_mark_netfree(oh->ot_tx); - /* declare that we'll remove object from fid-dnode mapping */ zapid = osd_get_name_n_idx(env, osd, fid, NULL, 0, &dn); osd_tx_hold_zap(oh->ot_tx, zapid, dn, FALSE, NULL); diff --git a/lustre/tests/sanity.sh b/lustre/tests/sanity.sh index 035014e..bda8d83 100755 --- a/lustre/tests/sanity.sh +++ b/lustre/tests/sanity.sh @@ -18325,52 +18325,6 @@ test_804() { } run_test 804 "verify agent entry for remote entry" -cleanup_805() { - do_facet $SINGLEMDS zfs set quota=$old $fsset - unlinkmany $DIR/$tdir/f- 1000000 - trap 0 -} - -test_805() { - local zfs_version=$(do_node $SINGLEMDS cat /sys/module/zfs/version) - [ "$(facet_fstype mds1)" != "zfs" ] && - skip "ZFS specific test" && return - [ $(version_code $zfs_version) -lt $(version_code 0.7.2) ] && - skip "netfree not implemented before 0.7" && return - [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.10.57) ]] || - { skip "Need MDS version at least 2.10.57" && return 0; } - - local fsset - local freekb - local usedkb - local old - local quota - local pref="osd-zfs.lustre-MDT0000." - - # limit available space on MDS dataset to meet nospace issue - # quickly. then ZFS 0.7.2 can use reserved space if asked - # properly (using netfree flag in osd_declare_destroy() - fsset=$(do_facet $SINGLEMDS lctl get_param -n $pref.mntdev) - old=$(do_facet $SINGLEMDS zfs get -H quota $fsset | \ - gawk '{print $3}') - freekb=$(do_facet $SINGLEMDS lctl get_param -n $pref.kbytesfree) - usedkb=$(do_facet $SINGLEMDS lctl get_param -n $pref.kbytestotal) - let "usedkb=usedkb-freekb" - let "freekb=freekb/2" - if let "freekb > 5000"; then - let "freekb=5000" - fi - do_facet $SINGLEMDS zfs set quota=$(((usedkb+freekb)*1024)) $fsset - trap cleanup_805 EXIT - mkdir $DIR/$tdir - $LFS setstripe -E 1M -L mdt $DIR/$tdir || error "DoM not working" - createmany -m $DIR/$tdir/f- 1000000 && error "ENOSPC wasn't met" - rm -rf $DIR/$tdir || error "not able to remove" - do_facet $SINGLEMDS zfs set quota=$old $fsset - trap 0 -} -run_test 805 "ZFS can remove from full fs" - # # tests that do cleanup/setup should be run at the end # diff --git a/lustre/utils/libmount_utils_zfs.c b/lustre/utils/libmount_utils_zfs.c index 148260c..04b1d61 100644 --- a/lustre/utils/libmount_utils_zfs.c +++ b/lustre/utils/libmount_utils_zfs.c @@ -543,9 +543,6 @@ static char *zfs_mkfs_opts(struct mkfs_opts *mop, char *str, int len) if (strlen(mop->mo_mkfsopts) != 0) snprintf(str, len, " -o %s", mop->mo_mkfsopts); - if (mop->mo_device_kb) - snprintf(str, len, " -o quota=%llu", - mop->mo_device_kb * 1024); return str; } -- 1.8.3.1