lkml.org 
[lkml]   [2012]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: sysfs regression: wrong link counts
    On Mon, Jan 30, 2012 at 10:43:50PM +0000, Al Viro wrote:
    > On Mon, Jan 30, 2012 at 02:27:17PM -0800, Greg KH wrote:
    > > On Mon, Jan 30, 2012 at 10:10:59PM +0000, Alan Cox wrote:
    > > > > Isn't there some other "proper" way of doing this in userspace, or is
    > > > > this really the correct way?
    > > >
    > > > You can look at the S_IFMT bits and stuff however link count indicating
    > > > number of subdirectories is a standard Unix thing and used by many quite
    > > > mundane tools as an optimisation.
    > >
    > > Ah, yeah, that is easier.
    > >
    > > Eric, care to fix this or want me to revert it?
    >
    > Fix _what_? Userland shite quoted upthread? Because that's where the bug
    > is - the mundane tools mentioned by Alan treat 1 in st_nlink as "no
    > information about the number of subdirectories". And shite might be too
    > mild a term for the little gem in question, really...

    To repeat this piece of bogosity for those who might've missed it:

    /* returns !0 if sysfs filesystem was found, 0 otherwise */
    int sensors_init_sysfs(void)
    {
    struct stat statbuf;

    snprintf(sensors_sysfs_mount, NAME_MAX, "%s", "/sys");
    if (stat(sensors_sysfs_mount, &statbuf) < 0
    || statbuf.st_nlink <= 2) /* Empty directory */
    return 0;

    return 1;
    }

    which is completely bogus - contrary to what it says in comments, it does
    *not* check anything about sysfs (or directories being empty). Checking
    that sysfs is mounted on /sys could be done by statfs(2) and checking
    ->f_type, or, considering what the code in lib/sysfs.c is doing, just
    checking that /sys/class is readable and failing otherwise.

    Sigh...


    \
     
     \ /
      Last update: 2012-01-30 23:59    [W:0.029 / U:87.276 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site