connections
define an alloc_msg method, and then handles them all the same way.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/messenger.c | 14 ++
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 0f9933a..6ec6051 100644
://tracker.ceph.com/issues/4322
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/mds_client.c | 23
net/ceph/messenger.c | 59
--
2 files changed, 42 insertions(+), 40 deletions(-)
diff --git a/fs/ceph/mds_client.c b/fs/ceph
Currently, incoming mds messages never use page data, which means
there is no need to set the page_alignment field in the message.
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/mds_client.c |1 -
1 file changed, 1 deletion(-)
diff --git a/fs/ceph/mds_client.c b/fs/ceph
Rearrange code so all the fields related to message data get
assigned the same way throughout the ceph code.
-Alex
[PATCH 1/3] ceph: use calc_pages_for() in start_read()
[PATCH 2/3] ceph: simplify ceph_sync_write() page_align calculation
[PATCH 3/3]
is duplicated.
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/addr.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index cfef3e0..a284a1f 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -314,7 +314,7 @@ static int start_read(struct
of which page the offset starts in--the only thing that
matters is the offset within the starting page. We will have
put the proper page offset to use into page_align, so just use
that in calculating num_pages.
This resolves:
http://tracker.ceph.com/issues/4166
Signed-off-by: Alex Elder el
way), so there's no
need to recompute it. Move the assignment of the page alignment
down with the others there as well.
This and the next few patches are preparation work for:
http://tracker.ceph.com/issues/4127
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/addr.c
Encapsulate information about osd request data into a
separate data structure, and define separate instances of
that structure for incoming and outgoing data.
-Alex
[PATCH 1/3] libceph: separate osd request data info
[PATCH 2/3] libceph: distinguish page
Pull the fields in an osd request structure that define the data for
the request out into a separate structure.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c |8 +++---
fs/ceph/addr.c | 59
+--
fs/ceph
An osd request uses either pages or a bio list for its data. Use a
union to record information about the two, and add a data type
tag to select between them.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c |4 +++
fs/ceph/file.c |1
:
http://tracker.ceph.com/issues/4127
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 18 +
fs/ceph/addr.c | 67 ---
fs/ceph/file.c | 10 ++---
include/linux/ceph/osd_client.h |5
On 03/04/2013 01:07 PM, Gregory Farnum wrote:
On Mon, Mar 4, 2013 at 10:12 AM, Alex Elder el...@inktank.com wrote:
In ceph_con_in_msg_alloc(), if no alloc_msg method is defined for a
connection a new message is allocated with ceph_msg_new().
Drop the mutex before making this call, and make
On 03/04/2013 01:05 PM, Gregory Farnum wrote:
This looks like a faithful reshuffling to me.
But...
On Mon, Mar 4, 2013 at 10:12 AM, Alex Elder el...@inktank.com wrote:
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 6ec6051..c7d4278 100644
--- a/net/ceph/messenger.c
+++ b
a request--including lingering ones--will get completed
(from the perspective of the user of the osd client) exactly once.
This resolves:
http://tracker.ceph.com/issues/3967
Signed-off-by: Alex Elder el...@inktank.com
---
include/linux/ceph/osd_client.h |1 +
net/ceph/osd_client.c
calc_layout() will return is 0, so make that
explicit in the successful case.
This resolves:
http://tracker.ceph.com/issues/4240
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/osd_client.c |6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/ceph/osd_client.c b
everywhere else.
Signed-off-by: Alex Elder el...@inktank.com
---
include/linux/ceph/messenger.h |2 +-
net/ceph/messenger.c | 16 +---
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h
index 60903e0
This series refactors the code involved with identifying the
details of the name, offset, and length of an object involved
with an osd request based on a file layout. It makes the focus
of calc_layout() be filling in an osd op structure based on the
file layout it is provided. The caller
Have calc_layout() pass the computed object number back to its
caller. (This is a small step to simplify review.)
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/osd_client.c | 13 +++--
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/net/ceph/osd_client.c b/net
Move the formatting of the object name (oid) to use for an object
request into the caller of calc_layout(). This makes the vino
parameter no longer necessary, so get rid of it.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/osd_client.c | 12 +---
1 file changed, 5
, however, that the only caller is ceph_osdc_new_request(),
and that immediately overwrites those fields with values based on
its passed-in page offset. So the assignment inside calc_layout()
was redundant anyway.
This resolves:
http://tracker.ceph.com/issues/4262
Signed-off-by: Alex Elder el
This series makes the fields related to the data portion of
a ceph message not get manipulated by code outside the ceph
messenger. It implements some interface functions that can
be used to assign data-related fields. Doing this will allow
the way message data is managed to be changed
Use distinct fields for tracking the number of pages in a message's
page array and in a message's page list. Currently only one or the
other is used at a time, but that will be changing soon.
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/mds_client.c |4 ++--
include
-by: Alex Elder el...@inktank.com
---
net/ceph/osd_client.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 0a4d4a0..1bb2b59 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -369,7 +369,6 @@ void
.
Rearrange the field order in a ceph_msg structure to group those
that are used to define the possible data payloads.
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/mds_client.c |4 ++--
include/linux/ceph/messenger.h | 22 +-
net/ceph/messenger.c
functions in the osd client and mds
client.
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/mds_client.c |4 ++--
include/linux/ceph/messenger.h |6 ++
net/ceph/messenger.c | 28
net/ceph/osd_client.c |6 +++---
4 files
.
This resolves:
http://tracker.ceph.com/issues/4237
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 19 ---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index b0eea3e..3cc003b 100644
--- a/drivers
barrier just
to put this issue to bed.
This resolves:
http://tracker.ceph.com/issues/4238
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 15 ---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index
. (Note that there remain some older
dout() calls that are left untouched by this patch.)
Issue a warning if rbd_osd_write_callback() ever gets a short write.
This resolves:
http://tracker.ceph.com/issues/4235
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 66
Define and use functions that encapsulate operations performed on
a connection's flags.
This resolves:
http://tracker.ceph.com/issues/4234
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/messenger.c | 107
--
1 file changed, 78
I'm re-posting these patches because I've updated them to be
based on the patches I just posted (Four miscellaneous patches).
These patches are available in the branch test/wip-4184 in
the ceph-client git repository. That branch is based on
branch test/wip-4234,5,7,8.
(Here's the original
to rbd_request_fn(), because it
releases a lock before acquiring it again.
This partially resolves:
http://tracker.ceph.com/issues/4184
Reported-by: Fengguang Wu fengguang...@intel.com
Signed-off-by: Alex Elder el...@inktank.com
---
v2: rebased
drivers/block/rbd.c | 12 +++-
1 file changed
(Re-posting because these changes have been rebased.)
This series cleans up con_work() a bit. The original motivation
was to get rid of a warning issued by the sparse utility, but
addressing that required a little rework and it was fairly
straightforward once that was done to make that function
Signed-off-by: Alex Elder el...@inktank.com
---
v2: rebased
net/ceph/messenger.c | 42 +++---
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 9a29d8a..c3b9060 100644
--- a/net/ceph/messenger.c
This just rearranges the logic in con_work() a little bit so that a
flag is used to indicate a fault has occurred. This allows both the
fault and non-fault case to be handled the same way and avoids a
couple of nearly consecutive gotos.
Signed-off-by: Alex Elder el...@inktank.com
---
v2: rebased
in two steps in order to facilitate review. The
This patch will be squashed into the next one before commit.
next patch simply indents the loop properly.
Signed-off-by: Alex Elder el...@inktank.com
---
v2: rebased
net/ceph/messenger.c | 39 ---
1 file
This is just the second part of a two-part patch. It simply
indents a block of code. This patch is going to be merged into
its predecessor following review.
Signed-off-by: Alex Elder el...@inktank.com
---
v2: rebased
net/ceph/messenger.c | 80
On 02/22/2013 11:26 AM, Alex Elder wrote:
An error occurring on a ceph connection is treated as a fault,
causing the connection to be reset. The initial part of this fault
handling has to be done while holding the connection mutex, but
it must then be dropped for the last part.
. . .
Sorry
What follows is a few series of patches that get rid of code
issues that lead to warnings from the sparse utility.
The first three patches address the warnings in the rbd, ceph
file system, and libceph code respectively. After that, one
warning remains in libceph, and that is addressed by a
to rbd_request_fn(), because it
releases a lock before acquiring it again.
This partially resolves:
http://tracker.ceph.com/issues/4184
Reported-by: Fengguang Wu fengguang...@intel.com
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 12 +++-
1 file changed, 7 insertions
Fix the causes for sparse warnings reported in the ceph file system
code. Here there are only two (and they're sort of silly but
they're easy to fix).
This partially resolves:
http://tracker.ceph.com/issues/4184
Reported-by: Fengguang Wu fengguang...@intel.com
Signed-off-by: Alex Elder el
resolves:
http://tracker.ceph.com/issues/4184
Reported-by: Fengguang Wu fengguang...@intel.com
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/crypto.c |7 ---
net/ceph/messenger.c |2 +-
net/ceph/mon_client.c |2 +-
3 files changed, 6 insertions(+), 5 deletions
This series cleans up con_work() a bit. The original motivation
was to get rid of a warning issued by the sparse utility, but
addressing that required a little rework and it was fairly
straightforward once that was done to make that function
fairly simple.
The problem sparse reported was really
report the connection
pointer like the rest.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/messenger.c | 37 -
1 file changed, 24 insertions(+), 13 deletions(-)
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index ab702cd..686973c 100644
This just rearranges the logic in con_work() a little bit so that a
flag is used to indicate a fault has occurred. This allows both the
fault and non-fault case to be handled the same way and avoids a
couple of nearly consecutive gotos.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph
will be squashed into the next one before commit.
next patch simply indents the loop properly.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/messenger.c | 32 +---
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/net/ceph/messenger.c b/net/ceph
This is just the second part of a two-part patch. It simply
indents a block of code. This patch is going to be merged into
its predecessor following review.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/messenger.c | 80
+-
1 file
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/messenger.c | 42 +++---
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 686973c..0fe9cbd 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph
This series eliminates some unneeded parameters from functions
in the osd client.
-Alex
[PATCH 1/4] ceph: kill ceph_osdc_writepages() nofail parameter
[PATCH 2/4] ceph: kill ceph_osdc_writepages() dosync parameter
[PATCH 3/4] ceph: kill
://tracker.ceph.com/issues/4126
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/addr.c |2 +-
include/linux/ceph/osd_client.h |2 +-
net/ceph/osd_client.c |6 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index
There is only one caller of ceph_osdc_writepages(), and it always
passes 0 as its dosync argument. Get rid of that argument and
replace its use in ceph_osdc_writepages() with 0.
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/addr.c |2 +-
include/linux/ceph
-by: Alex Elder el...@inktank.com
---
fs/ceph/addr.c |4 ++--
fs/ceph/file.c |2 +-
include/linux/ceph/osd_client.h |3 +--
net/ceph/osd_client.c |6 +++---
4 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/fs/ceph/addr.c b/fs/ceph
in the file with respect to the lock.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/osd_client.c | 19 +--
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index d3e7513..edda070 100644
--- a/net/ceph
The osd client supports a one shot event, but nobody ever uses
it. It probably works right, but it's effectively dead code, so
just get rid of it. Get rid of ceph_osd_wait_event() as well,
because whatever purpose it served was probably related to
using a one shot event.
There is only one caller of ceph_osdc_writepages(), and it always
passes 0 as its flags argument. Get rid of that argument and
replace its use in ceph_osdc_writepages() with 0.
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/addr.c |3 +--
include/linux/ceph
The ceph kernel and user space code bases have a few header files
in common, but because they're maintained separately they sometimes
diverge.
This series updates include/linux/ceph/rados.h to nearly match
its user space counterpart in src/include/rados.h.
There are still a few things that
Add the definition of ceph_osd_state_name(), to match its
counterpart in user space.
Signed-off-by: Alex Elder el...@inktank.com
---
include/linux/ceph/rados.h |2 ++
net/ceph/ceph_strings.c| 15 +++
2 files changed, 17 insertions(+)
diff --git a/include/linux/ceph/rados.h
Update ceph_osd_op_name() to include the newly-added definitions in
rados.h, and to match its counterpart in the user space code.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/ceph_strings.c | 24
1 file changed, 24 insertions(+)
diff --git a/net/ceph
This series just modifies osd_req_encode_op so it is
more informative, distinguishing between defined but
not supported opcodes and garbage opcodes.
-Alex
[PATCH 1/2] libceph: report defined but unsupported osd ops
[PATCH 2/2] libceph: remove dead code in
this effectively dead code, and report uses of the
previously handled cases as unsupported.
Signed-off-by: Alex Elder el...@inktank.com
---
net/ceph/osd_client.c | 31 +--
1 file changed, 5 insertions(+), 26 deletions(-)
diff --git a/net/ceph/osd_client.c b/net/ceph
This series updates include/linux/ceph/ceph_fs.h to nearly match
its user space counterpart in src/include/ceph_fs.h.
There are still a few things that should be reconciled by updating
that user space code; that work is covered by:
http://tracker.ceph.com/issues/4168
unused symbols
- added or revised comments
There were some differences between the struct definitions for
ceph_mon_subscribe_item and the open field of ceph_mds_request_args;
those differences remain.
This and the next commit resolve:
http://tracker.ceph.com/issues/4165
Signed-off-by: Alex
Update ceph_mds_state_name() and ceph_mds_op_name() to include the
newly-added definitions in ceph_fs.h, and to match its counterpart
in the user space code.
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/strings.c |4
1 file changed, 4 insertions(+)
diff --git a/fs/ceph
put the proper page offset to use into page_align, so just use
that in calculating num_pages.
This resolves:
http://tracker.ceph.com/issues/4166
Signed-off-by: Alex Elder el...@inktank.com
---
fs/ceph/file.c | 18 +-
1 file changed, 5 insertions(+), 13 deletions(-)
diff
The for_each_obj_request*() macros should parenthesize their uses of
the ireq parameter.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c |6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 982963e
/4007
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 15 +++
net/ceph/osd_client.c |3 ++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 6e9e2c2..37361bd 100644
--- a/drivers/block/rbd.c
This series does some cleanup related to some functions that
implement ceph page vectors. Together, these resolve:
http://tracker.ceph.com/issues/4053
-Alex
[PATCH 1/5] ceph: remove a few bogus declarations
[PATCH 2/5] libceph: use void pointers in
There are three ceph page vector functions declared in
fs/ceph/super.h that don't belong there. They're
probably left over from some long-ago code reorganization.
They're properly declared in include/linux/ceph/libceph.h
so just delete the ones in super.h.
Signed-off-by: Alex Elder el
arithmetic on char pointers.)
Signed-off-by: Alex Elder el...@inktank.com
---
include/linux/ceph/libceph.h | 10 +-
net/ceph/pagevec.c | 10 +-
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h
index
In rbd_obj_read_sync(), verify the number of bytes transferred won't
exceed what can be represented by a size_t before using it to
indicate the number of bytes to copy to the result buffer.
(The real motivation for this is to prepare for the next patch.)
Signed-off-by: Alex Elder el
ceph_copy_from_page_vector() provides.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 99f1a29..958e733 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block
The return values provided for ceph_copy_to_page_vector() and
ceph_copy_from_page_vector() serve no purpose, so get rid of them.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c |5 ++---
include/linux/ceph/libceph.h |4 ++--
net/ceph/pagevec.c
Somehow, I missed this little item in Documentation/atomic_ops.txt:
*** WARNING: atomic_read() and atomic_set() DO NOT IMPLY BARRIERS! ***
Create and use some helper functions that include the proper memory
barriers for manipulating the done field.
Signed-off-by: Alex Elder el...@inktank.com
of the spinlocks.
Fix that.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 14a6967..91983a60 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
a lot.
-Alex
On 01/30/2013 12:49 PM, Alex Elder wrote:
Currently, if the OSD client finds an osd request has had a bio list
attached to it, it drops a reference to it (or rather, to the first
entry on that list) when the request is released.
The code
r_pages in a debug message
inappropriately, and also invalidate the r_con_filling_msg pointer
after dropping a reference to it.
This resolves:
http://tracker.ceph.com/issues/3875
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c |2 --
net/ceph/osd_client.c |7
://tracker.ceph.com/issues/3976
Signed-off-by: Alex Elder el...@inktank.com
---
include/linux/ceph/messenger.h |2 ++
net/ceph/messenger.c |5 -
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h
index
On 01/30/2013 01:43 PM, Josh Durgin wrote:
On 01/26/2013 12:41 PM, Alex Elder wrote:
The new request code arranges to get a callback for every osd
request we submit (this was not the case previously).
We register a lingering object watch request for the header object
for each mapped rbd
Currently when the osd client gets a request that involves a
bio list, it assumes the initiator (the rbd client) has taken
an extra reference to the first bio on that list. When the
request is done, the initiator calls ceph_osdc_release_request()
and at that time the osd client drops that
://tracker.ceph.com/issues/3800
Signed-off-by: Alex Elder el...@inktank.com
---
include/linux/ceph/libceph.h |2 ++
net/ceph/ceph_common.c | 16
2 files changed, 18 insertions(+)
diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h
index 084d3c6
in rbd_osd_req_create().
This change could lead to a crash if old libceph.ko was used with
new rbd.ko. Add a compatibility check at rbd initialization time to
avoid this possibilty.
This resolves:
http://tracker.ceph.com/issues/3798and
http://tracker.ceph.com/issues/3799
Signed-off-by: Alex Elder
On 01/30/2013 01:52 PM, Josh Durgin wrote:
Enums should be capitalized according to Documentation/CodingStyle.
I already updated that in my own copy after last time...
Thanks.
-Alex
Other than that, looks good.
Reviewed-by: Josh Durgin
On 01/30/2013 02:39 PM, Josh Durgin wrote:
On 01/30/2013 12:38 PM, Alex Elder wrote:
On 01/30/2013 01:43 PM, Josh Durgin wrote:
On 01/26/2013 12:41 PM, Alex Elder wrote:
The new request code arranges to get a callback for every osd
request we submit (this was not the case previously).
We
On 01/29/2013 04:43 AM, Josh Durgin wrote:
On 01/24/2013 06:08 AM, Alex Elder wrote:
This is an update of the first patch in my request tracking
code series. After posting it the other day I identified some
problems related to reference counting of image and object
requests. I also am
A recent change to rbd prevented rbd devices from being unmapped
when they were in use. However that change did not address a
different, but related problem. It is possible for an open (the
one that would bump the open count from 0 to 1) to begin after
a request to remove the rbd device has
Define a new rbd device flags field, manipulated using bit
operations. Replace the use of the current exists flag with a bit
in this new flags field. Add a little commentary about the
exists flag, which does not need to be manipulated atomically.
Signed-off-by: Alex Elder el...@inktank.com
/issues/3427
Reported-by: Maciej Galkiewicz maciejgalkiew...@ragnarson.com
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 42 +-
1 file changed, 33 insertions(+), 9 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
This series applies on top of the new rbd request code.
When an osd request is marked to linger the osd client will keep
a copy of the request, and will resubmit it if necessary. If it
gets resubmitted, it will also call the completion routine again,
and because of that we need to make sure the
Move the code that unregisters an rbd device's lingering header
object watch request into rbd_dev_header_watch_sync(), so it
occurs in the same function that originally sets up that request.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 10 --
1 file changed, 4
the
pointer once it's been torn down.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 31 ++-
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 340773f..177ba0c 100644
--- a/drivers
/issues/3741
Signed-off-by: Alex Elder el...@inktank.com
---
v2: - fixed reference counting
- image request callback support
- image/object connection helper functions
- distinct BAD_WHICH value for non-image object requests
drivers/block/rbd.c | 622
On 01/24/2013 08:08 AM, Alex Elder wrote:
The remaining patches in the series have changed accordingly,
but they have not really changed substantively, so I am
not re-posting those (but will if it's requested).
This was requested. So I'm going to re-post the remainder
of the series. They'll
Now that the request function has been replaced by one using the new
request management data structures the old one can go away.
Deleting it makes rbd_dev_do_request() no longer needed, and
deleting that makes other functions unneeded, and so on.
Signed-off-by: Alex Elder el...@inktank.com
for the callback function. And since that's the only use
of *that* structure, it too can be eliminated.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 58
+++
1 file changed, 3 insertions(+), 55 deletions(-)
diff --git a/drivers/block
type.
This implements a new mechanism to allow the caller to wait for
completion for an rbd_obj_request by calling rbd_obj_request_wait().
This partially resolves:
http://tracker.newdream.net/issues/3755
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 96
Delete rbd_req_sync_read() is no longer used, so get rid of it.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 24
1 file changed, 24 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 742236b..750fc73 100644
--- a/drivers
Implement a new function to set up or tear down a watch event
for an mapped rbd image header using the new request code.
Create a new object request type nodata to handle this. And
define rbd_osd_trivial_callback() which simply marks a request done.
Signed-off-by: Alex Elder el...@inktank.com
Get rid of rbd_req_sync_watch(), because it is no longer used.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 42 --
1 file changed, 42 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 7b1eddc..8f659f3
Use the new object request tracking mechanism for handling a
notify_ack request.
Move the callback function below the definition of this so we don't
have to do a pre-declaration.
This resolves:
http://tracker.newdream.net/issues/3754
Signed-off-by: Alex Elder el...@inktank.com
---
drivers
Get rid rbd_req_sync_notify_ack() because it is no longer used.
As a result rbd_simple_req_cb() becomes unreferenced, so get rid
of that too.
Signed-off-by: Alex Elder el...@inktank.com
---
drivers/block/rbd.c | 33 -
1 file changed, 33 deletions(-)
diff --git
, but there's
really no need to wait for it to complete.
Change it so the caller doesn't wait for the notify acknowledgement
request to complete. And change the name to reflect it's no longer
synchronous.
This resolves:
http://tracker.newdream.net/issues/3877
Signed-off-by: Alex Elder el
601 - 700 of 1396 matches
Mail list logo