Hi,

int sysfs_write_attribute(struct sysfs_attribute *sysattr,
                const char *new_value, size_t len)

has a problematic "feature": if the file is empty but readable, nothing gets
written into it. The attached patch (untested) should fix it.

	Dominik


The check which tests whether the value to be written into a sysfs attribute
is already there should only trigger if the length of both strings is the
same.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>

--- sysfsutils-1.2.0/lib/sysfs_dir.c.original	2005-02-21 08:10:33.000000000 +0100
+++ sysfsutils-1.2.0/lib/sysfs_dir.c	2005-02-21 08:14:01.000000000 +0100
@@ -194,7 +194,8 @@
 			dprintf("Error reading attribute\n");
 			return -1;
 		}
-		if ((strncmp(sysattr->value, new_value, sysattr->len)) == 0) {
+		if (((strncmp(sysattr->value, new_value, sysattr->len)) == 0)&&
+		    (len == sysattr->len)) {
 			dprintf("Attr %s already has the requested value %s\n",
 					sysattr->name, new_value);
 			return 0;