Re: [patch 2/7] BSD Secure Levels: move bd claim from inode to filp

From: Christoph Hellwig
Date: Tue May 17 2005 - 11:20:45 EST


On Tue, May 17, 2005 at 10:25:46AM -0500, Michael Halcrow wrote:
> +/**
> + * Claim the blockdev to exclude mounters; release on file close.
> + */
> +static int seclvl_bd_claim(struct file *filp)
> {
> - int holder;
> struct block_device *bdev = NULL;
> - dev_t dev = inode->i_rdev;
> + dev_t dev = filp->f_dentry->d_inode->i_rdev;
> bdev = open_by_devnum(dev, FMODE_WRITE);
> if (bdev) {
> - if (bd_claim(bdev, &holder)) {
> + if (bd_claim(bdev, filp)) {
> blkdev_put(bdev);
> return -EPERM;
> }
> - /* claimed, mark it to release on close */
> - inode->i_security = current;
> + /* Claimed; mark it to release on close */
> + filp->f_security = filp;
> }
> return 0;

While we're at it this code is crap before and after your patch. There's absolutely
no point at all to use open_by_devnum if you already have an inode or file that you
can get the struct block_device from easily.

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