Re: get device from file struct

From: Jan Engelhardt
Date: Wed Dec 13 2006 - 14:21:03 EST



>in fs/read_write.c, the vfs_read function does:
>
>file->f_op->read(file, buf, count, pos);
>
>after this call is it possible to determine where the
>data is coming from?
>e.g., the first hard disk, a pipe or from a socket.

For hard disks:
file->f_dentry->d_inode->d_sb->s_bdev gives you the block device
in case it is a non-virtual filesystem.

For pipes/sockets I do not know of a may to go from a filp to a
struct sock or struct socket.

>If it is a socket we are interested
>from which device (eth0, eth1, lo, ...) the data was received.

I do not think that is possible either.


-`J'
--
-
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/