diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-01 09:06:47 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-01 09:06:47 -0700 | 
| commit | eff0d13f3823f35d70228cd151d2a2c89288ff32 (patch) | |
| tree | 55bff4dbcc43c4b0f38509ac4de585c0c457980c /drivers/block/drbd/drbd_actlog.c | |
| parent | 8cf1a3fce0b95050b63d451c9d561da0da2aa4d6 (diff) | |
| parent | 10af8138eb6d09d6a768e43ef1aa9b2f16b8c7be (diff) | |
Merge branch 'for-3.6/drivers' of git://git.kernel.dk/linux-block
Pull block driver changes from Jens Axboe:
 - Making the plugging support for drivers a bit more sane from Neil.
   This supersedes the plugging change from Shaohua as well.
 - The usual round of drbd updates.
 - Using a tail add instead of a head add in the request completion for
   ndb, making us find the most completed request more quickly.
 - A few floppy changes, getting rid of a duplicated flag and also
   running the floppy init async (since it takes forever in boot terms)
   from Andi.
* 'for-3.6/drivers' of git://git.kernel.dk/linux-block:
  floppy: remove duplicated flag FD_RAW_NEED_DISK
  blk: pass from_schedule to non-request unplug functions.
  block: stack unplug
  blk: centralize non-request unplug handling.
  md: remove plug_cnt feature of plugging.
  block/nbd: micro-optimization in nbd request completion
  drbd: announce FLUSH/FUA capability to upper layers
  drbd: fix max_bio_size to be unsigned
  drbd: flush drbd work queue before invalidate/invalidate remote
  drbd: fix potential access after free
  drbd: call local-io-error handler early
  drbd: do not reset rs_pending_cnt too early
  drbd: reset congestion information before reporting it in /proc/drbd
  drbd: report congestion if we are waiting for some userland callback
  drbd: differentiate between normal and forced detach
  drbd: cleanup, remove two unused global flags
  floppy: Run floppy initialization asynchronous
Diffstat (limited to 'drivers/block/drbd/drbd_actlog.c')
| -rw-r--r-- | drivers/block/drbd/drbd_actlog.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/block/drbd/drbd_actlog.c b/drivers/block/drbd/drbd_actlog.c index e54e31b02b88..3fbef018ce55 100644 --- a/drivers/block/drbd/drbd_actlog.c +++ b/drivers/block/drbd/drbd_actlog.c @@ -411,7 +411,7 @@ w_al_write_transaction(struct drbd_conf *mdev, struct drbd_work *w, int unused)  		+ mdev->ldev->md.al_offset + mdev->al_tr_pos;  	if (!drbd_md_sync_page_io(mdev, mdev->ldev, sector, WRITE)) -		drbd_chk_io_error(mdev, 1, true); +		drbd_chk_io_error(mdev, 1, DRBD_META_IO_ERROR);  	if (++mdev->al_tr_pos >  	    div_ceil(mdev->act_log->nr_elements, AL_EXTENTS_PT)) @@ -876,7 +876,11 @@ int __drbd_set_out_of_sync(struct drbd_conf *mdev, sector_t sector, int size,  	unsigned int enr, count = 0;  	struct lc_element *e; -	if (size <= 0 || (size & 0x1ff) != 0 || size > DRBD_MAX_BIO_SIZE) { +	/* this should be an empty REQ_FLUSH */ +	if (size == 0) +		return 0; + +	if (size < 0 || (size & 0x1ff) != 0 || size > DRBD_MAX_BIO_SIZE) {  		dev_err(DEV, "sector: %llus, size: %d\n",  			(unsigned long long)sector, size);  		return 0; | 
