From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |4 ++--
drivers/block/drbd/drbd_main.c | 33 +++--
drivers/block/drbd/drbd_nl.c|8 +++-
drivers/block/drbd
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_nl.c | 70 +++---
1 file changed, 45 insertions(+), 25 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd
From: Andreas Gruenbacher
Keep the protocol definitions separate from the kernel code; they are useful in
their own right.
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h | 293 +--
drivers/block/drbd
Hi,
we are preparing DRBD for the ability to have multiple connections,
in other words the ability to mirror a single block device to multiple
peers concurrently.
This patch set is the second half of a preparation step. With part 1
it introduces a new in memory object (struct drbd_resource),
and
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_bitmap.c | 16
drivers/block/drbd/drbd_int.h|3 +--
drivers/block/drbd/drbd_main.c | 20 ++--
3 files changed, 11 insertions
From: Andreas Gruenbacher
in w_e_ (peer request) callbacks and in peer request I/O completion handlers
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_worker.c | 69 +-
1 file changed, 38 insertions(+), 31
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_worker.c | 14 +++---
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |3 +-
drivers/block/drbd/drbd_receiver.c | 91 ++--
drivers/block/drbd/drbd_worker.c | 50 +---
3 files
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_nl.c | 92 +-
1 file changed, 46 insertions(+), 46 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_state.c |8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/drbd_state.c
index c9a0dba
From: Andreas Gruenbacher
Also move it to drbd_receiver.c and make it static.
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |1 -
drivers/block/drbd/drbd_receiver.c | 10 +-
drivers/block/drbd/drbd_worker.c |8
ruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |1 +
drivers/block/drbd/drbd_main.c | 49
2 files changed, 31 insertions(+), 19 deletions(-)
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
ind
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_main.c |3 +--
include/linux/drbd.h |2 ++
include/linux/drbd_genl.h |2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_receiver.c |8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/block/drbd/drbd_receiver.c
b/drivers/block/drbd/drbd_receiver.c
index
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h | 18 ++
drivers/block/drbd/drbd_main.c |2 +-
drivers/block/drbd/drbd_nl.c|3 +--
drivers/block/drbd/drbd_state.c | 17
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |5 ++---
drivers/block/drbd/drbd_main.c |6 +++---
drivers/block/drbd/drbd_receiver.c |4 ++--
drivers/block/drbd/drbd_worker.c | 13
From: Andreas Gruenbacher
The new function returns a peer device, which allows us to eliminate a few
instances of first_peer_device().
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |8 --
drivers/block/drbd/drbd_receiver.c | 174
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_main.c |4 ++--
drivers/block/drbd/drbd_nl.c |2 +-
drivers/block/drbd/drbd_receiver.c |2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h | 15 +++--
drivers/block/drbd/drbd_main.c | 36 +--
drivers/block/drbd/drbd_nl.c | 50
drivers/block/drbd
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h|1 -
drivers/block/drbd/drbd_worker.c |4 ++--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |1 +
drivers/block/drbd/drbd_strings.c |1 +
drivers/block/drbd/drbd_strings.h |9 +
include/linux/drbd.h |6 --
4 files
From: Andreas Gruenbacher
These functions are not used as drbd_work callbacks.
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_worker.c | 15 ++-
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/drivers/block/drbd
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_state.c |4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/drbd_state.c
index 1aef152..3f5c5a5
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_receiver.c |4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/block/drbd/drbd_receiver.c
b/drivers/block/drbd/drbd_receiver.c
index 5c0239e
From: Andreas Gruenbacher
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |2 ++
drivers/block/drbd/drbd_main.c |5 -
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block
From: Andreas Gruenbacher
Also change drbd_adm_connect() to expect a resource after it requested one.
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_nl.c |8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers
container_of macro to get it.
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_actlog.c | 16 +++--
drivers/block/drbd/drbd_int.h | 29
drivers/block/drbd/drbd_main.c | 32 -
drivers/block/drbd/drbd_receiver.c | 84
From: Andreas Gruenbacher
The new function can flush any work queue, not just the work queue of the data
socket of a connection.
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h | 12 ++--
drivers/block/drbd/drbd_main.c
From: Andreas Gruenbacher
in drbd_adm_down(), drbd_create_device() and drbd_set_role()
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_main.c | 55 +++-
drivers/block/drbd/drbd_nl.c | 68
From: Andreas Gruenbacher
Also fix drbd_calc_cpu_mask() to spread resources equally over all online cpus
independent of device minor numbers.
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
---
drivers/block/drbd/drbd_int.h |5 ++-
drivers/block/drbd/drbd_main.c | 74
From: Andreas Gruenbacher
This macro doesn't add any value; just use test_bit() instead.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_worker.c | 15 +++
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/block
From: Andreas Gruenbacher
Rename local variable 'ds' to 'disk_state' or 'data_size'.
'dgs' to 'digest_size'
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h | 6 ++---
drivers/block/drbd/drb
Most of these patches are cleanup work. The exception are the two
patches from Lars Ellenberg. These two can bring DRBD's performance
into the area of 160k IOPs. (On fitting hardware of course).
Andreas Gruenbacher (5):
drbd: Use better variable names
drbd: Use consistent names for all the bi_
From: Andreas Gruenbacher
These macros can easily be replaced with its definition.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h| 11 ++-
drivers/block/drbd/drbd_worker.c | 9 ++---
2 files changed, 12 insertions(+), 8
From: Andreas Gruenbacher
request_timer_fn() takes resource->req_lock via the device and releases it via
the connection. Avoid this as it is confusing static code checkers.
Reported-by: "Dan Carpenter"
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
Signed
From: Lars Ellenberg
Shorten receive path in the asender thread. Reduces CPU utilisation
of asender when receiving packets, and with that increases IOPs.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_receiver.c | 6 ++
drivers/block/drbd
From: Lars Ellenberg
The worker may now dequeue work items in batches.
This should reduce lock contention during busy periods.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_worker.c | 10 --
1 file changed, 4 insertions(+), 6 deletions
From: Philipp Marek
See "drbd/resources/*/volumes/*/resync_extents".
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_debugfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/drbd/drbd_debugfs.c
b/drivers/
From: Andreas Gruenbacher
Now they follow the _endio naming sheme.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_actlog.c | 4 ++--
drivers/block/drbd/drbd_bitmap.c | 6 +++---
drivers/block/drbd/drbd_int.h| 2 +-
drivers/block/drbd
From: Andreas Gruenbacher
. Update comments
. drbd_set_{in,out_of}_sync(): Remove unused parameters
. Move common code into adm_del_resource()
. Redefine ERR_MINOR_EXISTS -> ERR_MINOR_OR_VOLUME_EXISTS
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/d
end event counters, and drops the rs_last_events == 0 from the
throttle condition.
Reported-by: Mikhail Sugakov
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_receiver.c | 2 +-
drivers/block/drbd/drbd_state.c| 1 -
drivers/block/drbd/drbd_worker.c
Old backward-compat cruft
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h | 29 -
1 file changed, 4 insertions(+), 25 deletions(-)
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index
Lars Ellenberg (2):
drbd: fix resync throttling initialization
drbd: merge_bvec_fn: properly remap bvm->bi_bdev
Philipp Reisner (3):
drbd: fix race between role change and handshake
drbd: Fix state change in case of connection timeout
drbd: Remove an useless copy of kernel_setsock
In order to avoid deadlocks give up the state_mutex while waiting
for the transient state to go away.
Conflicts:
drbd/drbd_state.c
drbd/drbd_state.h
drbd/drbd_wrappers.h
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl
From: Andreas Gruenbacher
Avoid generic netlink calls in other parts of the code base.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h | 1 -
drivers/block/drbd/drbd_main.c | 17 +++--
drivers/block/drbd/drbd_nl.c | 2 +-
3
From: Lars Ellenberg
This was not noticed for many years. Affects operation if
md raid is used a backing device for DRBD.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_req.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/block/drbd
ollow up failures. E.g.
"BUG: scheduling while atomic"
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_req.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
inde
g walk in protocol A
drbd: separate out __al_write_transaction helper function
drbd: avoid potential deadlock during handshake
drbd: fix error path during resize
Oleg Drokin (1):
drbd: fix memory leak in drbd_adm_resize
Philipp Reisner (3):
drbd: Rename asender to ack_receiver
drbd
-git a/MAINTAINERS b/MAINTAINERS
index 9289ecb..d5ce1c5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3472,13 +3472,12 @@ F: drivers/scsi/dpt*
F: drivers/scsi/dpt/
DRBD DRIVER
-P: Philipp Reisner
-P: Lars Ellenberg
-M: drbd-...@lists.linbit.com
-L: drbd-u...@lists.linbit.com
+M:
ome standard activity log transactions.
Using lc_try_lock_for_transaction() instead of lc_try_lock() does not
care about pending activity log references, avoiding the potential
deadlock.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_actlog.c | 19 +++--
, move the definition,
so we can drop the forward declaration of a static helper.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_actlog.c | 304 ---
1 file changed, 156 insertions(+), 148 deletions(-)
diff --git a/drivers/
Avoid to prematurely resume application IO: don't set/clear a single
bit, but inc/dec an atomic counter.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h | 4 ++--
drivers/block/drbd/drbd_nl.c| 8 +---
drivers/block/drbd/drbd_state.
ta related offsets/sizes,
and on error restore them all.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 68 +---
1 file changed, 38 insertions(+), 30 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c
or with a huge bandwidth-delay product.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_req.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index 03d5b09..c0ec559 100644
---
From: Oleg Drokin
new_disk_conf could be leaked if the follow on checks fail,
so make sure to free it on error if it was not assigned yet.
Found with smatch.
Signed-off-by: Oleg Drokin
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 2 ++
1
recedences for us to use it as well.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h| 2 +-
drivers/block/drbd/drbd_main.c | 16 +-
drivers/block/drbd/drbd_nl.c | 121 ---
drivers/block/drbd
writeout in this case does not care for concurrent
application IO, so there is no point waiting for it.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/block/drbd
From: Roland Kammerer
Fix the semantic of lc_seq_printf. Currently, it always returns 0 and
the return value is unused, therefore, convert the return type to void.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
include/linux/lru_cache.h | 2 +-
lib/lru_cache.c | 4
usion with e.g. lsblk -D.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 24 ++--
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 66e8acd..9f60a68 1
et without first being demoted (deconfigured).
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 25 -
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index
e the range estimate returned by
drbd_md_last_sector() was still wrong.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_main.c | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 30c
From: Lars Ellenberg
Apparently we now implicitly get definitions for BITS_PER_PAGE and
BITS_PER_PAGE_MASK from the pid_namespace.h
Instead of renaming our defines, I chose to define only if not yet
defined, but to double check the value if already defined.
Signed-off-by: Philipp Reisner
From: Lars Ellenberg
Suggested by Akinobu Mita
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_bitmap.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd
From: Lars Ellenberg
Since kernel 3.3, we can use snprintf-style arguments
to create a workqueue.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_main.c | 4 ++--
drivers/block/drbd/drbd_receiver.c | 5 -
2 files changed, 6 insertions(+), 3
This prepares the next patch where the sending on the meta (or
control) socket is moved to a dedicated workqueue.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h | 6 +++---
drivers/block/drbd/drbd_main.c | 10 +-
drivers/block
.
One exception in that is sending back ping_acks. These stay
in the ack-receiver thread. Otherwise the logic becomes too
complicated for no added value.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h | 27 ++---
drivers/block/drbd/drbd_main.c
From: Lars Ellenberg
The effective data generation ID may be interesting for debugging
purposes of scenarios involving diskless states.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_debugfs.c | 10 ++
drivers/block/drbd/drbd_int.h | 1
: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 6ed3876..727e63e 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block
From: Andreas Gruenbacher
Also change the enum values to all-capital letters.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h | 6 --
drivers/block/drbd/drbd_main.c | 2 +-
drivers/block/drbd/drbd_nl.c | 4 ++--
drivers
GFP_NOWAIT has a value of 0. I.e. functionality not changed.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd
and is able to communicate this in time.
Otherwise, a later re-attach of the disk on the primary may start a
resync in the "wrong" direction.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_state.c | 2 +-
1 file changed, 1 insertion(+),
delayed_completion_of_aborted_request()
drbd: improve network timeout detection
drbd: fix NULL deref in remember_new_state
drbd: fix refcount error during detach of an already failed disk
Markus Elfring (1):
drbd: Deletion of an unnecessary check before the function call
"lc_d
have been recycled for other purposes
meanwhile, this will cause unexpected random memory changes.
To prevent corruption, we rather panic in that case.
Make it obvious from stack traces that this was the case by introducing
drbd_panic_after_delayed_completion_of_aborted_request().
Signed-off-b
prevent changes of that resource. (Previously, a read lock on the
global state lock was needed as well.)
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h| 18 ++---
drivers/block/drbd/drbd_main.c | 24 +++-
drivers/block/drbd
information is exposed through /proc/drbd.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 566 +--
include/linux/drbd_genl.h| 35 +++
include/linux/idr.h | 14 ++
3 files changed, 536 insertions
timer
looks at a new request with timestamp still zero (before it even was
submitted), and 0 + timeout is most likely older than "now".
Better assign the timestamp right when we put the
request object on said ring list.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
--
fine, there will be no change then.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_state.c | 46 +
1 file changed, 14 insertions(+), 32 deletions(-)
diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/
In drbd-8.4 there is always a single connection per resource,
and there is always exactly one peer_device for a device.
peer_device can not be NULL here.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 2 +-
1 file changed, 1 insertion(+), 1
From: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_receiver.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/block/drbd/drbd_receiver.c
b/drivers/block/drbd/drbd_receiver.c
index c097909
crash", without
bumping the data generation UUIDs on the peer in between, it makes it
easier to deal with.
If you intend to return from the local-io-error handler, then better
return as quickly as possible to avoid triggering other timeouts.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars
sive local disk still pending.
In that case, drbd_md_get_buffer() will return NULL.
Don't unconditionally call drbd_md_put_buffer(), or it will cause
refcount imbalance, and prevent any further re-attach on this volume
(until it is deleted and re-created).
Signed-off-by: Philipp Reisner
Sign
From: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 28
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index e1d5453
user-base for a later switch to the complete
drbd9 code base.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h | 45 +++
drivers/block/drbd/drbd_nl.c | 625 -
drivers/block/drbd/drbd_receiver.c
From: Lars Ellenberg
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
include/linux/drbd.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/include/linux/drbd.h b/include/linux/drbd.h
index 2c44d7e..392fc0e 100644
--- a/include/linux/drbd.h
+++ b/include/linux/drbd.h
From: Andreas Gruenbacher
There is no need to have these two as inline functions. In addition,
drbd_should_send_out_of_sync() is only used in a single place, anyway.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_req.c | 18
ble to continue IO to and from a healthy peer.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 2178fb7..7229d8e 10
From: Lars Ellenberg
Don't blame the peer for being unresponsive,
if we did not even ask the question yet.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h| 2 +
drivers/block/drbd/drbd_req.c
Hi Fabian,
I will take these patches and send them towards upstream in the
next round. (Probably squashing them into a smaller number of
patches while doing so)
Best regards,
Phil
Am Freitag, 27. November 2015, 22:26:05 schrieb Fabian Frederick:
> This small patchset does some code clean-up in
recedences for us to use it as well.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_int.h| 2 +-
drivers/block/drbd/drbd_main.c | 16 +-
drivers/block/drbd/drbd_nl.c | 121 ---
drivers/block/drbd
and is able to communicate this in time.
Otherwise, a later re-attach of the disk on the primary may start a
resync in the "wrong" direction.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_state.c | 2 +-
1 file changed, 1 insertion(+),
From: Oleg Drokin
new_disk_conf could be leaked if the follow on checks fail,
so make sure to free it on error if it was not assigned yet.
Found with smatch.
Signed-off-by: Oleg Drokin
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 2 ++
1
have been recycled for other purposes
meanwhile, this will cause unexpected random memory changes.
To prevent corruption, we rather panic in that case.
Make it obvious from stack traces that this was the case by introducing
drbd_panic_after_delayed_completion_of_aborted_request().
Signed-off-b
: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 1eb10e2..b87fb31 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block
In drbd-8.4 there is always a single connection per resource,
and there is always exactly one peer_device for a device.
peer_device can not be NULL here.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 2 +-
1 file changed, 1 insertion(+), 1
From: Lars Ellenberg
Since kernel 3.3, we can use snprintf-style arguments
to create a workqueue.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_main.c | 4 ++--
drivers/block/drbd/drbd_receiver.c | 5 -
2 files changed, 6 insertions(+), 3
, move the definition,
so we can drop the forward declaration of a static helper.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_actlog.c | 304 ---
1 file changed, 156 insertions(+), 148 deletions(-)
diff --git a/drivers/
or with a huge bandwidth-delay product.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_req.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index 7907fb5..2255dcf 100644
---
From: Lars Ellenberg
Apparently we now implicitly get definitions for BITS_PER_PAGE and
BITS_PER_PAGE_MASK from the pid_namespace.h
Instead of renaming our defines, I chose to define only if not yet
defined, but to double check the value if already defined.
Signed-off-by: Philipp Reisner
GFP_NOWAIT has a value of 0. I.e. functionality not changed.
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_nl.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd
From: Andreas Gruenbacher
Signed-off-by: Philipp Reisner
Signed-off-by: Lars Ellenberg
---
drivers/block/drbd/drbd_receiver.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/block/drbd/drbd_receiver.c
b/drivers/block/drbd/drbd_receiver.c
index b4b5680
201 - 300 of 455 matches
Mail list logo