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
LU-12616 obclass: fix MDS start/stop race
[fs/lustre-release.git]
/
lustre
/
osc
/
osc_io.c
diff --git
a/lustre/osc/osc_io.c
b/lustre/osc/osc_io.c
index
d4ef2d1
..
68cc041
100644
(file)
--- a/
lustre/osc/osc_io.c
+++ b/
lustre/osc/osc_io.c
@@
-357,24
+357,26
@@
int osc_io_iter_init(const struct lu_env *env, const struct cl_io_slice *ios)
{
struct osc_object *osc = cl2osc(ios->cis_obj);
struct obd_import *imp = osc_cli(osc)->cl_import;
+ struct osc_io *oio = osc_env_io(env);
int rc = -EIO;
spin_lock(&imp->imp_lock);
if (likely(!imp->imp_invalid)) {
- struct osc_io *oio = osc_env_io(env);
-
atomic_inc(&osc->oo_nr_ios);
oio->oi_is_active = 1;
rc = 0;
}
spin_unlock(&imp->imp_lock);
+ if (cfs_capable(CFS_CAP_SYS_RESOURCE))
+ oio->oi_cap_sys_resource = 1;
+
return rc;
}
EXPORT_SYMBOL(osc_io_iter_init);
-int osc_io_
write
_iter_init(const struct lu_env *env,
-
const struct cl_io_slice *ios)
+int osc_io_
rw
_iter_init(const struct lu_env *env,
+ const struct cl_io_slice *ios)
{
struct cl_io *io = ios->cis_io;
struct osc_io *oio = osc_env_io(env);
@@
-385,15
+387,15
@@
int osc_io_write_iter_init(const struct lu_env *env,
if (cl_io_is_append(io))
RETURN(osc_io_iter_init(env, ios));
- npages = io->u.ci_rw.
rw_range.cir
_count >> PAGE_SHIFT;
- if (io->u.ci_rw.
rw_range.cir
_pos & ~PAGE_MASK)
+ npages = io->u.ci_rw.
crw
_count >> PAGE_SHIFT;
+ if (io->u.ci_rw.
crw
_pos & ~PAGE_MASK)
++npages;
oio->oi_lru_reserved = osc_lru_reserve(osc_cli(osc), npages);
RETURN(osc_io_iter_init(env, ios));
}
-EXPORT_SYMBOL(osc_io_
write
_iter_init);
+EXPORT_SYMBOL(osc_io_
rw
_iter_init);
void osc_io_iter_fini(const struct lu_env *env,
const struct cl_io_slice *ios)
@@
-411,8
+413,8
@@
void osc_io_iter_fini(const struct lu_env *env,
}
EXPORT_SYMBOL(osc_io_iter_fini);
-void osc_io_
write
_iter_fini(const struct lu_env *env,
-
const struct cl_io_slice *ios)
+void osc_io_
rw
_iter_fini(const struct lu_env *env,
+ const struct cl_io_slice *ios)
{
struct osc_io *oio = osc_env_io(env);
struct osc_object *osc = cl2osc(ios->cis_obj);
@@
-425,7
+427,7
@@
void osc_io_write_iter_fini(const struct lu_env *env,
osc_io_iter_fini(env, ios);
}
-EXPORT_SYMBOL(osc_io_
write
_iter_fini);
+EXPORT_SYMBOL(osc_io_
rw
_iter_fini);
int osc_io_fault_start(const struct lu_env *env, const struct cl_io_slice *ios)
{
@@
-662,9
+664,9
@@
struct osc_data_version_args {
static int
osc_data_version_interpret(const struct lu_env *env, struct ptlrpc_request *req,
- void *arg, int rc)
+ void *arg
s
, int rc)
{
- struct osc_data_version_args *dva = arg;
+ struct osc_data_version_args *dva = arg
s
;
struct osc_io *oio = dva->dva_oio;
const struct ost_body *body;
@@
-978,14
+980,14
@@
EXPORT_SYMBOL(osc_io_end);
static const struct cl_io_operations osc_io_ops = {
.op = {
[CIT_READ] = {
- .cio_iter_init = osc_io_iter_init,
- .cio_iter_fini = osc_io_iter_fini,
+ .cio_iter_init = osc_io_
rw_
iter_init,
+ .cio_iter_fini = osc_io_
rw_
iter_fini,
.cio_start = osc_io_read_start,
.cio_fini = osc_io_fini
},
[CIT_WRITE] = {
- .cio_iter_init = osc_io_
write
_iter_init,
- .cio_iter_fini = osc_io_
write
_iter_fini,
+ .cio_iter_init = osc_io_
rw
_iter_init,
+ .cio_iter_fini = osc_io_
rw
_iter_fini,
.cio_start = osc_io_write_start,
.cio_end = osc_io_end,
.cio_fini = osc_io_fini