public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Online resizing devices
@ 2005-07-05 16:08 Andy
  2005-07-05 23:02 ` Nathan Scott
  0 siblings, 1 reply; 2+ messages in thread
From: Andy @ 2005-07-05 16:08 UTC (permalink / raw)
  To: linux-kernel

I'd like to do an online resize of and XFS filesystem on a non-partitioned
device.  But, I always have to reboot to do so.

Say I have a sdc with 16777216 blocks and expand it on the SAN
to have 17825792 blocks, and rescan the device.

The xfs_growfs does not see the size, nor does blockdev --getsz /dev/sdc,
however, the I know the rescan worked because /sys/block/sdc/size now is
17825792 instead of 16777216.

Is there some reason for this?  Is there a fix for it?  I'm not using any
volume management stuff yet but would like to be able to grow our
filesystems without having to reboot to do so.

Andy 

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

* Re: Online resizing devices
  2005-07-05 16:08 Online resizing devices Andy
@ 2005-07-05 23:02 ` Nathan Scott
  0 siblings, 0 replies; 2+ messages in thread
From: Nathan Scott @ 2005-07-05 23:02 UTC (permalink / raw)
  To: Andy; +Cc: linux-kernel, linux-xfs

On Tue, Jul 05, 2005 at 11:08:15AM -0500, Andy wrote:
> I'd like to do an online resize of and XFS filesystem on a non-partitioned
> device.  But, I always have to reboot to do so.
> 
> Say I have a sdc with 16777216 blocks and expand it on the SAN
> to have 17825792 blocks, and rescan the device.
> 
> The xfs_growfs does not see the size, nor does blockdev --getsz /dev/sdc,
> however, the I know the rescan worked because /sys/block/sdc/size now is
> 17825792 instead of 16777216.
> 

I've wondered why this is so too occasionally.  AFAICT, we are
doing everything correctly from the filesystem point of view,
we are just not being told of the larger device size when we
query it.  So, it was interesting to hear that sysfs reports
the correct size..

>From a quick look through the code - it seems sysfs reports the
value from the struct genhd ->capacity field (get_capacity and
set_capacity from <linux/genhd.h>).  Whereas the other block
device interfaces are looking at the struct block_device bd_inode
->i_size field.  So, it kinda looks like a coherency issue
between those two beasts - someone more familiar with the block
layer may be able to suggest a fix (Christoph/Jens/Al/...).

> Is there some reason for this?  Is there a fix for it?  I'm not using any
> volume management stuff yet but would like to be able to grow our
> filesystems without having to reboot to do so.

I'm not aware of a fix, and the last time I looked using a volume
manager doesn't resolve this issue either.

cheers.

-- 
Nathan

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

end of thread, other threads:[~2005-07-05 23:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-05 16:08 Online resizing devices Andy
2005-07-05 23:02 ` Nathan Scott

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