lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1288628129-12811-1-git-send-email-tj@kernel.org>
Date:	Mon,  1 Nov 2010 17:15:24 +0100
From:	Tejun Heo <tj@...nel.org>
To:	axboe@...nel.dk, hch@...radead.org, linux-kernel@...r.kernel.org,
	petero2@...ia.com, schwidefsky@...ibm.com,
	heiko.carstens@...ibm.com, jack@...e.cz, akpm@...ux-foundation.org,
	adilger.kernel@...ger.ca, tytso@....edu, mfasheh@...e.com,
	joel.becker@...cle.com, aelder@....com, dm-devel@...hat.com,
	drbd-dev@...ts.linbit.com, neilb@...e.de, leochen@...adcom.com,
	sbranden@...adcom.com, chris.mason@...cle.com, swhiteho@...hat.com,
	shaggy@...ux.vnet.ibm.com, joern@...fs.org,
	konishi.ryusuke@....ntt.co.jp, reiserfs-devel@...r.kernel.org,
	viro@...iv.linux.org.uk
Subject: [PATCHSET] block: clean up bdev claim/release handling

bdev exclusive access handling is somewhat clumsy.  The primary
interface is bd_claim() and bd_release() but there also are
open_bdev_exclusive(), close_bdev_exclusive() and bd_claim_by_disk()
and bd_release_from_disk().

Gaining exclusive access as a separate step from open itself also has
the inherent problem that the block layer doesn't know whether the
current open attempt is for an exclusive access or not.  The action of
open itself may affect the existing exclusive access but there's no
way to prevent it.

This patchset simplifies the claim/release handling by folding it into
blkdev_get/put() and making others simple wrappers around them.  This
simplifies code and removes strange corner cases like the
non-atomicity of exclusive open described above.

There are five patches in this series.

 0001-mtd-fix-bdev-exclusive-open-bugs-in-block2mtd-add_de.patch
 0002-btrfs-close_bdev_exclusive-should-use-the-same-flags.patch
 0003-block-simplify-holder-symlink-handling.patch
 0004-block-make-blkdev_get-put-handle-exclusive-access.patch
 0005-block-reorganize-claim-release-implementation.patch

0001-0002 are fixes regarding exclusive bdev opens.  0003 simplifies
holder/slave symlink handling.  0004 folds bdev claim/release into
blkdev_get/put().  0005 reorganizes implementation a bit.

Cleaning up claim/release handling enables implementation of in-kernel
disk event polling which be posted soon.  Although this patchset
touches various files including drivers and filesystems, the changes
there are mostly trivial and I think it would be best to route these
through the block tree.

This patchset is on top of 2.6.37-rc1 and available in the following
git tree.

 git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git cleanup-bd_claim

This patchset reduces about 400 lines of code.

Thanks.

 block/ioctl.c                   |    5 
 drivers/block/drbd/drbd_int.h   |    2 
 drivers/block/drbd/drbd_main.c  |    7 
 drivers/block/drbd/drbd_nl.c    |  103 ++-----
 drivers/block/pktcdvd.c         |   22 -
 drivers/char/raw.c              |   14 
 drivers/md/dm-table.c           |   20 -
 drivers/md/md.c                 |   16 -
 drivers/mtd/devices/block2mtd.c |   10 
 drivers/s390/block/dasd_genhd.c |    2 
 fs/block_dev.c                  |  576 +++++++++-------------------------------
 fs/btrfs/volumes.c              |   14 
 fs/ext3/super.c                 |   12 
 fs/ext4/super.c                 |   12 
 fs/gfs2/ops_fstype.c            |    4 
 fs/jfs/jfs_logmgr.c             |   17 -
 fs/logfs/dev_bdev.c             |    4 
 fs/nilfs2/super.c               |    4 
 fs/ocfs2/cluster/heartbeat.c    |    2 
 fs/partitions/check.c           |    2 
 fs/reiserfs/journal.c           |   17 -
 fs/super.c                      |   14 
 fs/xfs/linux-2.6/xfs_super.c    |    2 
 include/linux/fs.h              |   22 -
 kernel/power/swap.c             |    5 
 mm/swapfile.c                   |    7 
 26 files changed, 260 insertions(+), 655 deletions(-)

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ