these of resend/replay write req.
Severity : normal
+Frequency : rare
+Bugzilla : 11662
+Description: Grant space more than avaiable left space sometimes.
+Details : When then OST is about to be full, if two bulk writing from
+ different clients came to OST. Accord the avaliable space of the
+ OST, the first req should be permitted, and the second one
+ should be denied by ENOSPC. But if the seconde arrived before
+ the first one is commited. The OST might wrongly permit second
+ writing, which will cause grant space > avaiable space.
+
+Severity : normal
Frequency : when client is evicted
Bugzilla : 12371
Description: Grant might be wrongly erased when osc is evicted by OST
ext3 code. The SLES10 kernel turns barrier support on by
default. The fix is to undo that change for ldiskfs.
-
------------------------------------------------------------------------------
2006-12-09 Cluster File Systems, Inc. <info@clusterfs.com>
/* if enough space, pretend it was granted */
ungranted += bytes;
rnb[n].flags |= OBD_BRW_GRANTED;
+ lnb[n].lnb_grant_used = bytes;
CDEBUG(0, "idx %d ungranted=%lu\n",n,ungranted);
rc = 0;
continue;
* happens in filter_grant_commit() after the writes are done. */
*left -= ungranted;
fed->fed_grant -= used;
- fed->fed_pending += used;
- exp->exp_obd->u.filter.fo_tot_pending += used;
+ fed->fed_pending += used + ungranted;
+ exp->exp_obd->u.filter.fo_tot_granted += ungranted;
+ exp->exp_obd->u.filter.fo_tot_pending += used + ungranted;
CDEBUG(mask,
"%s: cli %s/%p used: %lu ungranted: %lu grant: %lu dirty: %lu\n",
test_15() { # bug 974 - ENOSPC
echo "PATH=$PATH"
sh oos2.sh $MOUNT1 $MOUNT2
+ grant_error=`dmesg | grep "> available"`
+ [ -z "$grant_error" ] || error "$grant_error"
}
run_test 15 "test out-of-space with multiple writers ==========="