* [PATCH 1/3] lib/kobject_uevent.c: fix CONIG_NET=n warning
2010-06-04 20:44 [GIT PATCH] driver core fixes for .35-git Greg KH
@ 2010-06-04 20:47 ` Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 2/3] kobject: free memory if netlink_kernel_create() fails Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 3/3] fix setattr error handling in sysfs, configfs Greg Kroah-Hartman
2 siblings, 0 replies; 4+ messages in thread
From: Greg Kroah-Hartman @ 2010-06-04 20:47 UTC (permalink / raw)
To: linux-kernel
Cc: Andrew Morton, Eric W. Biederman, David S. Miller, Greg Kroah-Hartman
From: Andrew Morton <akpm@linux-foundation.org>
lib/kobject_uevent.c:87: warning: 'kobj_bcast_filter' defined but not used
Repairs "hotplug: netns aware uevent_helper"
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
lib/kobject_uevent.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index 59c1551..e2eb989 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -83,6 +83,7 @@ out:
return ret;
}
+#ifdef CONFIG_NET
static int kobj_bcast_filter(struct sock *dsk, struct sk_buff *skb, void *data)
{
struct kobject *kobj = data;
@@ -98,6 +99,7 @@ static int kobj_bcast_filter(struct sock *dsk, struct sk_buff *skb, void *data)
return 0;
}
+#endif
static int kobj_usermode_filter(struct kobject *kobj)
{
--
1.7.1
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 2/3] kobject: free memory if netlink_kernel_create() fails
2010-06-04 20:44 [GIT PATCH] driver core fixes for .35-git Greg KH
2010-06-04 20:47 ` [PATCH 1/3] lib/kobject_uevent.c: fix CONIG_NET=n warning Greg Kroah-Hartman
@ 2010-06-04 20:47 ` Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 3/3] fix setattr error handling in sysfs, configfs Greg Kroah-Hartman
2 siblings, 0 replies; 4+ messages in thread
From: Greg Kroah-Hartman @ 2010-06-04 20:47 UTC (permalink / raw)
To: linux-kernel; +Cc: Dan Carpenter, Greg Kroah-Hartman
From: Dan Carpenter <error27@gmail.com>
There is a kfree(ue_sk) missing on the error path if
netlink_kernel_create() fails.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Reviewed-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
lib/kobject_uevent.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index e2eb989..b935795 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -380,6 +380,7 @@ static int uevent_net_init(struct net *net)
if (!ue_sk->sk) {
printk(KERN_ERR
"kobject_uevent: unable to create netlink socket!\n");
+ kfree(ue_sk);
return -ENODEV;
}
mutex_lock(&uevent_sock_mutex);
--
1.7.1
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 3/3] fix setattr error handling in sysfs, configfs
2010-06-04 20:44 [GIT PATCH] driver core fixes for .35-git Greg KH
2010-06-04 20:47 ` [PATCH 1/3] lib/kobject_uevent.c: fix CONIG_NET=n warning Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 2/3] kobject: free memory if netlink_kernel_create() fails Greg Kroah-Hartman
@ 2010-06-04 20:47 ` Greg Kroah-Hartman
2 siblings, 0 replies; 4+ messages in thread
From: Greg Kroah-Hartman @ 2010-06-04 20:47 UTC (permalink / raw)
To: linux-kernel; +Cc: Nick Piggin, Greg Kroah-Hartman
From: Nick Piggin <npiggin@suse.de>
sysfs and configfs setattr functions have error cases after the generic inode's
attributes have been changed. Fix consistency by changing the generic inode
attributes only when it is guaranteed to succeed.
Signed-off-by: Nick Piggin <npiggin@suse.de>
Acked-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
fs/configfs/inode.c | 9 ++++-----
fs/sysfs/inode.c | 6 ++++--
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/fs/configfs/inode.c b/fs/configfs/inode.c
index 4164514..cf78d44 100644
--- a/fs/configfs/inode.c
+++ b/fs/configfs/inode.c
@@ -72,10 +72,6 @@ int configfs_setattr(struct dentry * dentry, struct iattr * iattr)
if (!sd)
return -EINVAL;
- error = simple_setattr(dentry, iattr);
- if (error)
- return error;
-
sd_iattr = sd->s_iattr;
if (!sd_iattr) {
/* setting attributes for the first time, allocate now */
@@ -89,9 +85,12 @@ int configfs_setattr(struct dentry * dentry, struct iattr * iattr)
sd_iattr->ia_atime = sd_iattr->ia_mtime = sd_iattr->ia_ctime = CURRENT_TIME;
sd->s_iattr = sd_iattr;
}
-
/* attributes were changed atleast once in past */
+ error = simple_setattr(dentry, iattr);
+ if (error)
+ return error;
+
if (ia_valid & ATTR_UID)
sd_iattr->ia_uid = iattr->ia_uid;
if (ia_valid & ATTR_GID)
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
index bde1a4c..0835a3b 100644
--- a/fs/sysfs/inode.c
+++ b/fs/sysfs/inode.c
@@ -117,11 +117,13 @@ int sysfs_setattr(struct dentry *dentry, struct iattr *iattr)
if (error)
goto out;
+ error = sysfs_sd_setattr(sd, iattr);
+ if (error)
+ goto out;
+
/* this ignores size changes */
generic_setattr(inode, iattr);
- error = sysfs_sd_setattr(sd, iattr);
-
out:
mutex_unlock(&sysfs_mutex);
return error;
--
1.7.1
^ permalink raw reply [flat|nested] 4+ messages in thread