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
| ||
|
Date: Fri, 17 Oct 2008 13:07:16 -0700 From: "Nicholas A. Bellinger" <nab@...ux-iscsi.org> To: Joel Becker <Joel.Becker@...cle.com> Cc: Greg KH <greg@...ah.com>, LKML <linux-kernel@...r.kernel.org>, Linux-fsdevel <linux-fsdevel@...r.kernel.org>, linux-scsi <linux-scsi@...r.kernel.org>, "Linux-iSCSI.org Target Dev" <linux-iscsi-target-dev@...glegroups.com>, SCST-Devel <scst-devel@...ts.sourceforge.net>, Alan Stern <stern@...land.harvard.edu>, Andrew Morton <akpm@...l.org>, Christoph Hellwig <hch@...radead.org> Subject: Re: [PATCH] [ConfigFS]: Allow symbolic links from a SysFS struct kobject source. On Fri, 2008-10-17 at 12:48 -0700, Joel Becker wrote: > On Fri, Oct 17, 2008 at 01:22:18AM -0700, Nicholas A. Bellinger wrote: > > On Fri, 2008-10-17 at 00:44 -0700, Greg KH wrote: > > > What is the problem you are attempting to solve here? > > > > > > > So, the generic target_core_mod engine that lives > > under /sys/kernel/config/target/core needs a method to locate struct > > block_device and struct scsi_device for access via bio_submit() and > > scsi_execute_() respectively. > > > > Originally, target_core_mod used key echoed through configfs attributes > > like so: > > > > export TARGET=/sys/kernel/config/target/core/ > > > > # Create $STORAGE_OBJECT of type Linux/BLOCK in generic target_core_mod > > mkdir -p $TARGET/iblock_0/lvm_test0 > > # OLD METHOD to reference struct block_device > > echo iblock_major=254,iblock_minor=2 > $TARGET/iblock_0/lvm_test0/control > > echo 1 > $TARGET/iblock_0/lvm_test0/enable > > # NEW METHOD using sysfs ->configfs symlinks to reference struct block_device > > ln -s /sys/block/dm-2 $TARGET/iblock_0/lvm_test0/dm-2 > > Pass an open file descriptor. In bash(1): > > exec 3<>/dev/dm-7 > echo 3 >$TARGET/iblock_0/lvm_test0/control # I'd call it 'fd' > > In kernel, in the ->store() function of 'control': > > p = (char *)page; > fd = simple_strtol(p, &p, 0); > filp = fget(fd); > inode = igrab(filp->f_mapping->host); > dev = I_BDEV(filp->f_mapping->host); > blkdev_get(dev, FMODE_WRITE | FMODE_READ, 0); > > Error handling is left up to you (validate the strtol, fd range, ISBLK, > etc). This assumes you want the struct block_device and want to pin it > in memory. I assume you do. > Btw, ideally I would like to do the same type of thing for accessing drivers/scsi for both TYPE_DISK and non TYPE_DISK.. I will have a look and see if something is possible to access struct scsi_device in all device type cases.. --nab -- 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