[lkml]   [2002]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectNFS "dev_t" issues..
    >>>>> " " == Linus Torvalds <> writes:

    > I made a pre6, which contains a new-and-anal "kdev_t".


    > I fixed up the stuff I use and which showed up in compiles (on
    > a source level, it's so far totally untested), but I'd really
    > like people to check out their own subsystems. _Especially_ NFS
    > and NFSD, which had several cases of mixing the two dev_t's
    > around, and which also used them as numbers. Trond, Neil?

    Hi Linus & Marcelo,

    Sorry I'm a bit late in replying. AFAICS as of 2.5.2-pre9, all is
    more or less well, however when reviewing that code, I noticed what is
    probably a bug:

    Given that (for character devices) the value of inode->i_cdev in
    2.[45].x depends on the i_rdev, it would appear to be a bug for us to
    be able to change inode->i_rdev *after* we've called
    For this reason, I'd advocate removing the lines in
    nfs_refresh_inode() that reset the inode->i_rdev (as per the patch
    below) and instead rely on the ordinary stale inode checks to tell us
    if/when the inode->i_rdev has changed.

    It's hardly a new bug. It's been around ever since we added
    init_special_inode(), so it's clearly not one that bites us every day
    of the year. Even so, the same patch should probably be applied to


    diff -u --recursive --new-file linux-2.5.2-pre9/fs/nfs/inode.c linux-2.5.2-fix/fs/nfs/inode.c
    --- linux-2.5.2-pre9/fs/nfs/inode.c Mon Jan 7 16:57:18 2002
    +++ linux-2.5.2-fix/fs/nfs/inode.c Mon Jan 7 17:08:42 2002
    @@ -1107,9 +1107,6 @@
    inode->i_blocks = fattr->du.nfs2.blocks;
    inode->i_blksize = fattr->du.nfs2.blocksize;
    - inode->i_rdev = NODEV;
    - if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
    - inode->i_rdev = to_kdev_t(fattr->rdev);

    /* Update attrtimeo value */
    if (!invalid && time_after(jiffies, NFS_ATTRTIMEO_UPDATE(inode)+NFS_ATTRTIMEO(inode))) {
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at
     \ /
      Last update: 2005-03-22 13:18    [W:0.024 / U:7.264 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site