On Sun, Aug 26, 2012 at 06:28:20PM +0400, Cyrill Gorcunov wrote: > On Sun, Aug 26, 2012 at 03:46:53AM +0100, Al Viro wrote: > > > > IMO doing that at open() time is just a headache for no good reason - > > resolving descriptor to struct file * at read() time as we do now > > is much saner. Better do that in your ->show(), since you are using > > a single-shot iterator anyway... > > Al, the updated version is below. I suppose I can grab proc inode then > and lookup for file position and flags at show method. (I remember > what you've said about O_CLOEXEC bit, but I'll address this in > another patch). Applied, with a couple of changes: * there's no need for those games with ihold/iput - opened file pins its inode down just fine, TYVM. * struct fd_info is pointless in that form - the last argument of single_open() will end up in seq_file ->private, so let's just pass the inode there and use m->private in ->show(). I'll push that into vfs.git#master (along with the previous patch) in a few hours. O_CLOEXEC is taken care of in my tree. FWIW, I'm consolidating descriptor handling in general into fs/file.c (and I'm seriously tempted to rename that sucker to something like fs/descriptors.c or fs/fdtable.c); some of that stuff is already in #master. I'm probably going to move some of the code from your fs/proc/fd.c there as well... -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html