All of lore.kernel.org
 help / color / mirror / Atom feed
* Something broken in sys_swapon
@ 2001-11-03 20:23 Simon Kirby
  2001-11-03 20:31 ` Alexander Viro
  0 siblings, 1 reply; 7+ messages in thread
From: Simon Kirby @ 2001-11-03 20:23 UTC (permalink / raw)
  To: linux-kernel, Alexander Viro

Looking through sys_swapon() for the culprit of my corruption after a
nonexistent swap device is added (/dev/hdb2 when /dev/hda is my only hard
drive and hdc and hdd are cdroms), I notice a things that look a bit odd.

First, set_blocksize(dev, PAGE_SIZE) is done twice in the S_ISBLK block
(it should only be needed once?), but furthermore:

                kdev_t dev = swap_inode->i_rdev;
                struct block_device_operations *bdops;

                p->swap_device = dev;
                set_blocksize(dev, PAGE_SIZE);

I don't know much at all about the inode structure, but doesn't this set
the block size of the originating filesystem containing the inode rather
than the block device that inode happens to be pointing to?  That would
definitely explain the corruption I see if my file system block size is
changed (/ is a 2KB block-sized EXT2 filesystem).

Simon-

[  Stormix Technologies Inc.  ][  NetNation Communications Inc. ]
[       sim@stormix.com       ][       sim@netnation.com        ]
[ Opinions expressed are not necessarily those of my employers. ]

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

end of thread, other threads:[~2001-11-04 20:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-11-03 20:23 Something broken in sys_swapon Simon Kirby
2001-11-03 20:31 ` Alexander Viro
2001-11-03 21:13   ` Simon Kirby
2001-11-04 11:46     ` Mike Black
2001-11-04 12:05       ` Alexander Viro
2001-11-04 20:22         ` Simon Kirby
2001-11-04 20:33           ` Simon Kirby

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.