Messages in this thread | | | Date | Mon, 11 Aug 2003 08:22:31 +0100 | From | Christoph Hellwig <> | Subject | Re: [PATCH] 2 of 2 - Allow O_EXCL on a block device to claim exclusive use. |
| |
On Mon, Aug 11, 2003 at 12:35:57PM +1000, NeilBrown wrote: > diff ./fs/block_dev.c~current~ ./fs/block_dev.c > --- ./fs/block_dev.c~current~ 2003-08-11 09:01:38.000000000 +1000 > +++ ./fs/block_dev.c 2003-08-11 09:01:41.000000000 +1000 > @@ -643,6 +643,7 @@ int blkdev_get(struct block_device *bdev > int blkdev_open(struct inode * inode, struct file * filp) > { > struct block_device *bdev; > + int res; > > /* > * Preserve backwards compatibility and allow large file access > @@ -655,7 +656,18 @@ int blkdev_open(struct inode * inode, st > bd_acquire(inode); > bdev = inode->i_bdev; > > - return do_open(bdev, inode, filp); > + res = do_open(bdev, inode, filp); > + if (res) > + return res; > + > + if (!(filp->f_flags & O_EXCL) ) > + return 0; > + > + if (!(res = bd_claim(bdev, filp))) > + return 0; > + > + blkdev_put(bdev, BDEV_FILE); > + return res;
Shouldn't you claim it before opening. Also what is the desired behaviour when opening partitions vs whole device with O_EXCL?
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |