[Drbd-dev] [GIT PULL] drbd-8.3 updates

Philipp Reisner philipp.reisner at linbit.com
Thu May 10 14:19:02 CEST 2012


Hi Jens,

This are the updates we have in the drbd-8.3 tree. They are intended
for your "for-3.5/drivers" drivers branch.

These changes include one new feature:
 * Allow detach from frozen backing devices with the new --force option;
   configurable timeout for backing devices by the new disk-timeout option

And huge number of bug fixes:
 * Fixed a write ordering problem on SyncTarget nodes for a write
   to a block that gets resynced at the same time. The bug can
   only be triggered with a device that has a firmware that
   actually reorders writes to the same block
 * Fixed a race between disconnect and receive_state, that could cause
   a IO lockup
 * Fixed resend/resubmit for requests with disk or network timeout
 * Make sure that hard state changed do not disturb the connection
   establishing process (I.e. detach due to an IO error). When the
   bug was triggered it caused a retry in the connect process
 * Postpone soft state changes to no disturb the connection
   establishing process (I.e. becoming primary). When the bug
   was triggered it could cause both nodes going into SyncSource state
 * Fixed a refcount leak that could cause failures when trying to
   unload a protocol family modules, that was used by DRBD
 * Dedicated page pool for meta data IOs
 * Deny normal detach (as opposed to --forced) if the user tries
   to detach from the last UpToDate disk in the resource
 * Fixed a possible protocol error that could be caused by
   "unusual" BIOs.
 * Enforce the disk-timeout option also on meta-data IO operations
 * Implemented stable bitmap pages when we do a full write out of
   the bitmap
 * Fixed a rare compatibility issue with DRBD's older than 8.3.7
   when negotiating the bio_size
 * Fixed a rare race condition where an empty resync could stall with
   if pause/unpause events happen in parallel
 * Made the re-establishing of connections quicker, if it got a broken pipe
   once. Previously there was a bug in the code caused it to waste the first
   successful established connection after a broken pipe event.

PS: I am postponing the drbd-8.4 for mainline for one or two kernel
    development cycles more (the ~400 patchets set).

Best regards,
 Philipp

The following changes since commit 0b7877d4eea3f93e3dd941999522bbd8c538cb53:

  Merge tag 'v3.4-rc5' into for-3.5/core (2012-05-01 14:29:55 +0200)

are available in the git repository at:

  git at git.drbd.org:linux-drbd for-jens

Andreas Gruenbacher (1):
      drbd: drbd_nl_resize(): Fix missing put_ldev() on error path

Arne Redlich (1):
      drbd: bm_page_async_io: properly initialize page->private

Cong Wang (1):
      drbd: check MODULE for THIS_MODULE

David Howells (1):
      DRBD: Fix comparison always false warning due to long/long long compare

Lars Ellenberg (31):
      drbd: cosmetic: fix accidental division instead of modulo when pretty printing
      drbd: spelling fix: too small
      drbd: allow ping-timeout of up to 30 seconds
      drbd: downgraded error printk to info
      drbd: change some GFP_KERNEL to GFP_NOIO
      drbd: fix "stalled" empty resync
      drbd: fix harmless race to not trigger an ASSERT
      drbd: fix spurious meta data IO "error"
      drbd: send intermediate state change results to the peer
      drbd: fix potential spinlock deadlock
      drbd: fix race between disconnect and receive_state
      drbd: Fix module refcount leak in drbd_accept()
      drbd: add missing part_round_stats to _drbd_start_io_acct
      drbd: fix potential data corruption and protocol error
      drbd: remove now unused seq_num member from struct drbd_request
      drbd: missing wakeup after drbd_rs_del_all
      drbd: remove some very outdated comments
      drbd: remove unused static helper function
      drbd: don't pretend that barrier_nr == 0 was special
      drbd: make OOS_HANDED_TO_NETWORK its own case
      drbd: fix READ_RETRY_REMOTE_CANCELED to not complete if device is suspended
      drbd: fix WRITE_ACKED_BY_PEER_AND_SIS to not set RQ_NET_DONE
      drbd: move put_ldev from __req_mod() to the endio callback
      drbd: fix resend/resubmit of frozen IO
      drbd: fix race between drbdadm invalidate/verify and finishing resync
      drbd: allow bitmap to change during writeout from resync_finished
      drbd: add page pool to be used for meta data IO
      drbd: use the newly introduced page pool for bitmap IO
      drbd: remove unused define
      drbd: introduce a bio_set to allocate housekeeping bios from
      drbd: grammar fix in log message

Philipp Reisner (30):
      drbd: Lower log priority for an event that is definitely not an error
      drbd: Only print sanitize state's warnings, if the state change happens
      drbd: Improve compatibility with drbd's older than 8.3.7
      drbd: Keep a reference to barrier acked requests
      drbd: Immediately allow completion of IOs, that wait for IO completions on a failed disk
      drbd: moved md_io into mdev
      drbd: Replaced md_io_mutex by an atomic: md_io_in_use
      drbd: Implemented wait_until_done_or_disk_failure()
      drbd: Keep a reference to the bio until the completion handler finished
      drbd: Hold a reference to ldev while doing meta-data IO
      drbd: Added a kref to bm_aio_ctx
      drbd: Bitmap IO functions can now return prematurely if the disk breaks
      drbd: Allow new IOs while the local disk in in FAILED state
      drbd: Force flag for the detach operation
      drbd: Implemented the disk-timeout option
      drbd: Fixed current UUID generation
      drbd: Consider that the no-data-condition could be in connected state
      drbd: detach must not try to abort non-local requests from drbd-8.4
      drbd: Cleanup all epoch objects upon connection loss
      drbd: Bugfix for the connection behavior
      drbd: Derive sync-UUIDs only from the bitmap-uuid if it is non-zero
      drbd: Fixed a race condition between detach and start of resync
      drbd: Fixed an obvious copy-n-paste mistake
      drbd: Do not send state packets while lower than C_CONNECTED cstate
      drbd: Consider the disk-timeout also for meta-data IO operations
      drbd: Fix a potential race that could case data inconsistency
      drbd: Fix a potential write ordering issue on SyncTarget nodes
      drbd: Delay/reject other state changes while establishing a connection
      drbd: Ensure that data_size is not 0 before using data_size-1 as index
      drbd: Restore the request restart logic

 drivers/block/drbd/drbd_actlog.c   |  104 ++++++++---
 drivers/block/drbd/drbd_bitmap.c   |  146 +++++++++++----
 drivers/block/drbd/drbd_int.h      |   90 ++++++----
 drivers/block/drbd/drbd_main.c     |  357 +++++++++++++++++++++++++++---------
 drivers/block/drbd/drbd_nl.c       |   48 ++++-
 drivers/block/drbd/drbd_proc.c     |    2 +-
 drivers/block/drbd/drbd_receiver.c |   95 ++++++++---
 drivers/block/drbd/drbd_req.c      |  132 +++++++++-----
 drivers/block/drbd/drbd_req.h      |   19 ++-
 drivers/block/drbd/drbd_worker.c   |   31 +++-
 include/linux/drbd.h               |    6 +-
 include/linux/drbd_limits.h        |    7 +-
 include/linux/drbd_nl.h            |    5 +-
 13 files changed, 754 insertions(+), 288 deletions(-)

-- 
: Dipl-Ing Philipp Reisner
: LINBIT | Your Way to High Availability
: Tel: +43-1-8178292-50, Fax: +43-1-8178292-82
: http://www.linbit.com

DRBD(R) and LINBIT(R) are registered trademarks of LINBIT, Austria.



More information about the drbd-dev mailing list