History log of /openbmc/linux/drivers/block/rbd.c (Results 151 – 175 of 1662)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# dfd9875f 06-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: get rid of img_req->{offset,length}

These are set, but no longer used.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>


# 0420c5dd 06-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: remove rbd_img_request_fill() and helpers

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>


# 5a237819 06-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: switch to common striping framework

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>


# 2bb1e56e 06-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: create+truncate for whole-object layered discards

A whole-object layered discard is implemented as a truncate rather
than a delete: a dummy object is needed to prevent the CoW machinery
from ki

rbd: create+truncate for whole-object layered discards

A whole-object layered discard is implemented as a truncate rather
than a delete: a dummy object is needed to prevent the CoW machinery
from kicking in. However, a truncate on a non-existent object is
a no-op. If the object doesn't exist in HEAD, a discard request is
effectively ignored, which violates our "discard zeroes data" promise
and breaks REQ_OP_WRITE_ZEROES implementation.

A non-exclusive create on an existing object is also a no-op, so the
fix is to do a compound create+truncate instead.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


# 86bd7998 06-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: move to obj_req->img_extents

In preparation for rbd "fancy" striping, replace obj_req->img_offset
with obj_req->img_extents. A single starting offset isn't sufficient
because we want only one

rbd: move to obj_req->img_extents

In preparation for rbd "fancy" striping, replace obj_req->img_offset
with obj_req->img_extents. A single starting offset isn't sufficient
because we want only one OSD request per object and will merge adjacent
object extents in ceph_file_to_extents(). The final object extent may
map into multiple different byte ranges in the image.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


# 43df3d35 02-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: incorporate ceph_object_extent

obj_req->object_no -> obj_req->ex.oe_objno
obj_req->offset -> obj_req->ex.oe_off
obj_req->length -> obj_req->ex.oe_len

... and use ex for linking object requests

rbd: incorporate ceph_object_extent

obj_req->object_no -> obj_req->ex.oe_objno
obj_req->offset -> obj_req->ex.oe_off
obj_req->length -> obj_req->ex.oe_len

... and use ex for linking object requests to image requests.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


# ecc633ca 01-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: store data_type in img_req instead of obj_req

All object requests are associated with an image request now -- avoid
duplicating the same info in each object request.

Signed-off-by: Ilya Dryomo

rbd: store data_type in img_req instead of obj_req

All object requests are associated with an image request now -- avoid
duplicating the same info in each object request.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


# 0be2d60e 01-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: remove obj_req->flags field

There are no standalone (!IMG_DATA) object requests anymore.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>


# 15961b44 01-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: remove old request completion code

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>


# 7114edac 01-Feb-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: new request completion code

Do away with partial request completions and all the associated
complexity. Individual object requests no longer need to be completed
in order -- when the last one

rbd: new request completion code

Do away with partial request completions and all the associated
complexity. Individual object requests no longer need to be completed
in order -- when the last one becomes ready, we complete the entire
higher level request all at once.

This also wraps up the conversion to a state machine model and
eliminates the recursion described in commit 6d69bb536bac ("rbd:
prevent kernel stack blow up on rbd map").

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


# efbd1a11 30-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: update rbd_img_request_submit() signature

It should be void now. Also, object requests are unlinked only in
image request destructor, which can't run before rbd_img_request_put(),
so no need f

rbd: update rbd_img_request_submit() signature

It should be void now. Also, object requests are unlinked only in
image request destructor, which can't run before rbd_img_request_put(),
so no need for _safe.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


# 9bb0248d 30-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: add img_req->op_type field

Store op_type in its own field instead of packing it into flags.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>


# a162b308 30-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: simplify rbd_osd_req_create()

No need to pass rbd_dev and op_type to rbd_osd_req_create(): there are
no standalone (!IMG_DATA) object requests anymore and osd_req->r_flags
can be set in rbd_osd

rbd: simplify rbd_osd_req_create()

No need to pass rbd_dev and op_type to rbd_osd_req_create(): there are
no standalone (!IMG_DATA) object requests anymore and osd_req->r_flags
can be set in rbd_osd_req_format_{read,write}().

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


# 51c3509e 29-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: remove old request handling code

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>


# 3da691bf 29-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: new request handling code

The notable changes are:

- instead of explicitly stat'ing the object to see if it exists before
issuing the write, send the write optimistically along with the stat

rbd: new request handling code

The notable changes are:

- instead of explicitly stat'ing the object to see if it exists before
issuing the write, send the write optimistically along with the stat
in a single OSD request
- zero copyup optimization
- all object requests are associated with an image request and have
a valid ->img_request pointer; there are no standalone (!IMG_DATA)
object requests anymore
- code is structured as a state machine (vs a bunch of callbacks with
implicit state)

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


Revision tags: v4.15
# 7e07efb1 20-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: move from raw pages to bvec data descriptors

In preparation for rbd "fancy" striping which requires bio_vec arrays,
wire up BVECS data type and kill off PAGES data type. There is nothing
wrong

rbd: move from raw pages to bvec data descriptors

In preparation for rbd "fancy" striping which requires bio_vec arrays,
wire up BVECS data type and kill off PAGES data type. There is nothing
wrong with using page vectors for copyup requests -- it's just less
iterator boilerplate code to write for the new striping framework.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>

show more ...


# f9dcbc44 20-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: get rid of img_req->copyup_pages

The initiating object request is the proper owner -- save a bit of
space.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linar

rbd: get rid of img_req->copyup_pages

The initiating object request is the proper owner -- save a bit of
space.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>

show more ...


# 06fbb699 20-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: don't (ab)use obj_req->pages for stat requests

obj_req->pages is for provided data buffers. stat requests are
internal and should be NODATA.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
R

rbd: don't (ab)use obj_req->pages for stat requests

obj_req->pages is for provided data buffers. stat requests are
internal and should be NODATA.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>

show more ...


# df6ba701 20-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: remove bio cloning helpers

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>


# 5359a17d 20-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

libceph, rbd: new bio handling code (aka don't clone bios)

The reason we clone bios is to be able to give each object request
(and consequently each ceph_osd_data/ceph_msg_data item) its own
pointer

libceph, rbd: new bio handling code (aka don't clone bios)

The reason we clone bios is to be able to give each object request
(and consequently each ceph_osd_data/ceph_msg_data item) its own
pointer to a (list of) bio(s). The messenger then initializes its
cursor with cloned bio's ->bi_iter, so it knows where to start reading
from/writing to. That's all the cloned bios are used for: to determine
each object request's starting position in the provided data buffer.

Introduce ceph_bio_iter to do exactly that -- store position within bio
list (i.e. pointer to bio) + position within that bio (i.e. bvec_iter).

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>

show more ...


# a1fbb5e7 16-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: start enums at 1 instead of 0

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>


# 24f1df60 12-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: set max_segment_size to UINT_MAX

Commit 21acdf45f495 ("rbd: set max_segments to USHRT_MAX") removed the
limit on max_segments. Remove the limit on max_segment_size as well.

Signed-off-by: Ily

rbd: set max_segment_size to UINT_MAX

Commit 21acdf45f495 ("rbd: set max_segments to USHRT_MAX") removed the
limit on max_segments. Remove the limit on max_segment_size as well.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>

show more ...


# 233bde21 14-Mar-2018 Bart Van Assche <bart.vanassche@wdc.com>

block: Move SECTOR_SIZE and SECTOR_SHIFT definitions into <linux/blkdev.h>

It happens often while I'm preparing a patch for a block driver that
I'm wondering: is a definition of SECTOR_SIZE and/or S

block: Move SECTOR_SIZE and SECTOR_SHIFT definitions into <linux/blkdev.h>

It happens often while I'm preparing a patch for a block driver that
I'm wondering: is a definition of SECTOR_SIZE and/or SECTOR_SHIFT
available for this driver? Do I have to introduce definitions of these
constants before I can use these constants? To avoid this confusion,
move the existing definitions of SECTOR_SIZE and SECTOR_SHIFT into the
<linux/blkdev.h> header file such that these become available for all
block drivers. Make the SECTOR_SIZE definition in the uapi msdos_fs.h
header file conditional to avoid that including that header file after
<linux/blkdev.h> causes the compiler to complain about a SECTOR_SIZE
redefinition.

Note: the SECTOR_SIZE / SECTOR_SHIFT / SECTOR_BITS definitions have
not been removed from uapi header files nor from NAND drivers in
which these constants are used for another purpose than converting
block layer offsets and sizes into a number of sectors.

Cc: David S. Miller <davem@davemloft.net>
Cc: Mike Snitzer <snitzer@redhat.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Nitin Gupta <ngupta@vflare.org>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


# 8b904b5b 07-Mar-2018 Bart Van Assche <bart.vanassche@wdc.com>

block: Use blk_queue_flag_*() in drivers instead of queue_flag_*()

This patch has been generated as follows:

for verb in set_unlocked clear_unlocked set clear; do
replace-in-files queue_flag_${ve

block: Use blk_queue_flag_*() in drivers instead of queue_flag_*()

This patch has been generated as follows:

for verb in set_unlocked clear_unlocked set clear; do
replace-in-files queue_flag_${verb} blk_queue_flag_${verb%_unlocked} \
$(git grep -lw queue_flag_${verb} drivers block/bsg*)
done

Except for protecting all queue flag changes with the queue lock
this patch does not change any functionality.

Cc: Mike Snitzer <snitzer@redhat.com>
Cc: Shaohua Li <shli@fb.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


# e573427a 16-Jan-2018 Ilya Dryomov <idryomov@gmail.com>

rbd: whitelist RBD_FEATURE_OPERATIONS feature bit

This feature bit restricts older clients from performing certain
maintenance operations against an image (e.g. clone, snap create).
krbd does not pe

rbd: whitelist RBD_FEATURE_OPERATIONS feature bit

This feature bit restricts older clients from performing certain
maintenance operations against an image (e.g. clone, snap create).
krbd does not perform maintenance operations.

Cc: stable@vger.kernel.org
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Jason Dillaman <dillaman@redhat.com>

show more ...


12345678910>>...67