public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] detect online disk resize
@ 2008-05-08  6:29 Andrew Patterson
  2008-05-08  6:30 ` [PATCH 1/5] Wrapper for lower-level revalidate_disk routines Andrew Patterson
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Andrew Patterson @ 2008-05-08  6:29 UTC (permalink / raw)
  To: linux-scsi; +Cc: andrew.patterson, linux-kernel, viro, axboe, andmike

This patch series handles online disk resizes that are currently not
completely recognized by the kernel using the existing revalidate_disk
routines.  An online resize can occur when growing or shrinking a
Fibre Channel LUN or perhaps by adding a disk to an existing RAID
volume.

The kernel currently recognizes a device size change when
revalidate_disk() is called; however, the block layer does not use the
new size while it has any current openers on the device. So, for
example, if LVM has an volume open on the device, you will generally
not see the size change until after a reboot. We fix this problem by
creating a wrapper to be used with lower-level revalidate_disk
routines.  This wrapper first calls the lower-level driver's
revalidate_disk routine. It then compares the gendisk capacity to the
block devices inode size. If there is a difference, we adjust the
block device's size. If the size has changed, we then flush the disk
for safety.

This patch series only modifies the sd driver to use these changes as
that is all that I currently have to test with. Device drivers like cciss
and DAC960 should probably use it as well.

Diff stats:

 drivers/scsi/sd.c  |    4 +--
 fs/block_dev.c     |   76 +++++++++++++++++++++++++++++++++++++++++++++++++---
 include/linux/fs.h |    1 +
 3 files changed, 74 insertions(+), 7 deletions(-)

Commits:

 - Wrapper for lower-level revalidate_disk routines.
 - Adjust block device size after an online resize of a disk.
 - SCSI sd driver calls revalidate_disk wrapper.
 - Added flush_disk to factor out common buffer cache flushing code.
 - Call flush_disk() after detecting an online resize.

-- 
Andrew Patterson


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-05-08  6:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-08  6:29 [PATCH 0/5] detect online disk resize Andrew Patterson
2008-05-08  6:30 ` [PATCH 1/5] Wrapper for lower-level revalidate_disk routines Andrew Patterson
2008-05-08  6:30 ` [PATCH 2/5] Adjust block device size after an online resize of a disk Andrew Patterson
2008-05-08  6:31 ` [PATCH 3/5] SCSI sd driver calls revalidate_disk wrapper Andrew Patterson
2008-05-08  6:31 ` [PATCH 4/5] Added flush_disk to factor out common buffer cache flushing code Andrew Patterson
2008-05-08  6:32 ` [PATCH 5/5] Call flush_disk() after detecting an online resize Andrew Patterson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox