Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Branch HEAD
[fs/lustre-release.git]
/
lustre
/
osc
/
osc_request.c
diff --git
a/lustre/osc/osc_request.c
b/lustre/osc/osc_request.c
index
9f3a6c4
..
e6bbf9a
100644
(file)
--- a/
lustre/osc/osc_request.c
+++ b/
lustre/osc/osc_request.c
@@
-743,7
+743,8
@@
static int osc_destroy(struct obd_export *exp, struct obdo *oa,
if (!(cli->cl_import->imp_connect_flags_orig & OBD_CONNECT_MDS)) {
req->rq_interpret_reply = osc_destroy_interpret;
if (!osc_can_send_destroy(cli)) {
if (!(cli->cl_import->imp_connect_flags_orig & OBD_CONNECT_MDS)) {
req->rq_interpret_reply = osc_destroy_interpret;
if (!osc_can_send_destroy(cli)) {
- struct l_wait_info lwi = { 0 };
+ struct l_wait_info lwi = LWI_INTR(LWI_ON_SIGNAL_NOOP,
+ NULL);
/*
* Wait until the number of on-going destroy RPCs drops
/*
* Wait until the number of on-going destroy RPCs drops
@@
-2627,7
+2628,7
@@
static int osc_max_rpc_in_flight(struct client_obd *cli, struct lov_oinfo *loi)
}
if (!hprpc && !list_empty(&loi->loi_read_lop.lop_urgent)) {
}
if (!hprpc && !list_empty(&loi->loi_read_lop.lop_urgent)) {
- oap = list_entry(loi->loi_
write
_lop.lop_urgent.next,
+ oap = list_entry(loi->loi_
read
_lop.lop_urgent.next,
struct osc_async_page, oap_urgent_item);
hprpc = !!(oap->oap_async_flags & ASYNC_HP);
}
struct osc_async_page, oap_urgent_item);
hprpc = !!(oap->oap_async_flags & ASYNC_HP);
}
@@
-2896,6
+2897,9
@@
int osc_queue_async_io(const struct lu_env *env,
oap->oap_page_off = off;
oap->oap_count = count;
oap->oap_brw_flags = brw_flags;
oap->oap_page_off = off;
oap->oap_count = count;
oap->oap_brw_flags = brw_flags;
+ /* Give a hint to OST that requests are coming from kswapd - bug19529 */
+ if (libcfs_memory_pressure_get())
+ oap->oap_brw_flags |= OBD_BRW_MEMALLOC;
oap->oap_async_flags = async_flags;
if (cmd & OBD_BRW_WRITE) {
oap->oap_async_flags = async_flags;
if (cmd & OBD_BRW_WRITE) {
@@
-4255,18
+4259,12
@@
static int osc_precleanup(struct obd_device *obd, enum obd_cleanup_stage stage)
int osc_cleanup(struct obd_device *obd)
{
int osc_cleanup(struct obd_device *obd)
{
- struct osc_creator *oscc = &obd->u.cli.cl_oscc;
int rc;
ENTRY;
ptlrpc_lprocfs_unregister_obd(obd);
lprocfs_obd_cleanup(obd);
int rc;
ENTRY;
ptlrpc_lprocfs_unregister_obd(obd);
lprocfs_obd_cleanup(obd);
- spin_lock(&oscc->oscc_lock);
- oscc->oscc_flags &= ~OSCC_FLAG_RECOVERING;
- oscc->oscc_flags |= OSCC_FLAG_EXITING;
- spin_unlock(&oscc->oscc_lock);
-
/* free memory of osc quota cache */
lquota_cleanup(quota_interface, obd);
/* free memory of osc quota cache */
lquota_cleanup(quota_interface, obd);
@@
-4316,6
+4314,7
@@
struct obd_ops osc_obd_ops = {
.o_unpackmd = osc_unpackmd,
.o_precreate = osc_precreate,
.o_create = osc_create,
.o_unpackmd = osc_unpackmd,
.o_precreate = osc_precreate,
.o_create = osc_create,
+ .o_create_async = osc_create_async,
.o_destroy = osc_destroy,
.o_getattr = osc_getattr,
.o_getattr_async = osc_getattr_async,
.o_destroy = osc_destroy,
.o_getattr = osc_getattr,
.o_getattr_async = osc_getattr_async,