* Recommended e2fsprogs version: 1.40.2-cfs5
* Note that reiserfs quotas are disabled on SLES 10 in this kernel.
+Severity : normal
+Bugzilla : 13375
+Descriptoin: make lov_create() will not stuck in obd_statfs_rqset()
+Details : If an OST is down the MDS will hang indefinitely in
+ obd_statfs_rqset() waiting for the statfs data. While for
+ MDS QOS usage of statfs, it should not stuck in waiting.
+
Severity : enhancement
Bugzilla : 14288
Description: Update to RHEL4 U6 kernel-2.6.9-67.EL.
}
static inline int obd_statfs_rqset(struct obd_device *obd,
- struct obd_statfs *osfs, __u64 max_age)
+ struct obd_statfs *osfs, __u64 max_age,
+ int quick_pry)
{
struct ptlrpc_request_set *set = NULL;
struct obd_info oinfo = { { { 0 } } };
oinfo.oi_osfs = osfs;
rc = obd_statfs_async(obd, &oinfo, max_age, set);
- if (rc == 0)
+ if (rc == 0) {
+ struct ptlrpc_request *req;
+
+ if (quick_pry)
+ list_for_each_entry(req, &set->set_requests,
+ rq_set_chain) {
+ spin_lock(&req->rq_lock);
+ req->rq_no_resend = 1;
+ req->rq_no_delay = 1;
+ spin_unlock(&req->rq_lock);
+ }
rc = ptlrpc_set_wait(set);
+ }
ptlrpc_set_destroy(set);
RETURN(rc);
}
osfs->os_bavail, osfs->os_blocks, osfs->os_ffree,osfs->os_files);
rc = obd_statfs_rqset(class_exp2obd(sbi->ll_dt_exp),
- &obd_statfs, max_age);
+ &obd_statfs, max_age, 0);
if (rc) {
CERROR("obd_statfs fails: rc = %d\n", rc);
RETURN(rc);
osfs->os_bavail, osfs->os_blocks, osfs->os_ffree,osfs->os_files);
rc = obd_statfs_rqset(class_exp2obd(sbi->ll_dt_exp),
- &obd_osfs, max_age);
+ &obd_osfs, max_age, 0);
if (rc) {
CERROR("obd_statfs fails: rc = %d\n", rc);
RETURN(rc);
}
maxage = cfs_time_shift_64(-lov->desc.ld_qos_maxage);
- obd_statfs_rqset(exp->exp_obd, &osfs, maxage);
+ obd_statfs_rqset(exp->exp_obd, &osfs, maxage, 1);
rc = lov_prep_create_set(exp, &oinfo, ea, src_oa, oti, &set);
if (rc)