Re: [PATCH] libsensors: More reliable detection of sysfs being mounted

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2012-01-27 at 11:16 -0500, Jean Delvare wrote:
> Upcoming change in sysfs will break the way libsensors detects if
> sysfs is mounted. Adjust the implementation so that it still works after
> said change.
> 
> ---
>  lib/sysfs.c |    8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> --- lm-sensors.orig/lib/sysfs.c	2012-01-27 11:49:37.000000000 +0100
> +++ lm-sensors/lib/sysfs.c	2012-01-27 16:20:12.125482157 +0100
> @@ -24,6 +24,7 @@
>  
>  #include <sys/types.h>
>  #include <sys/stat.h>
> +#include <sys/vfs.h>
>  #include <unistd.h>
>  #include <string.h>
>  #include <stdlib.h>
> @@ -40,6 +41,7 @@
>  /****************************************************************************/
>  
>  #define ATTR_MAX	128
> +#define SYSFS_MAGIC	0x62656572
>  
>  /*
>   * Read an attribute from sysfs
> @@ -593,11 +595,11 @@ exit_free:
>  /* returns !0 if sysfs filesystem was found, 0 otherwise */
>  int sensors_init_sysfs(void)
>  {
> -	struct stat statbuf;
> +	struct statfs statfsbuf;
>  
>  	snprintf(sensors_sysfs_mount, NAME_MAX, "%s", "/sys");
> -	if (stat(sensors_sysfs_mount, &statbuf) < 0
> -	 || statbuf.st_nlink <= 2)	/* Empty directory */
> +	if (statfs(sensors_sysfs_mount, &statfsbuf) < 0
> +	 || statfsbuf.f_type != SYSFS_MAGIC)
>  		return 0;
>  
>  	return 1;
> 
Looks good. Hope that won't bite us too much after 3.4 is released.

Guenter



_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux