lkml.org 
[lkml]   [2006]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: get device from file struct
    Date
    On Wed, 13 Dec 2006 20:19:51 +0100 (MET)
    Jan Engelhardt <jengelh@linux01.gwdg.de> wrote:

    >
    > >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.

    The connection between file and network device is through many
    layers and there is no direct binding. It could be 0 to N interfaces
    and even be data dependent.

    --
    Stephen Hemminger <shemminger@osdl.org>
    -
    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/

    \
     
     \ /
      Last update: 2006-12-14 02:07    [W:3.346 / U:0.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site