driver core fixes for .35-git
Subsystems (3)
PATCH 1/1 driver core fixes for .35-git
Here's 3 bugfixes for your .35-rc git tree.
Please pull from:
master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-core-2.6.git/
All of these patches have been in the linux-next and mm trees.
The patches will be sent as a follow-on to this message to lkml for people to see.
thanks,
greg k-h
------------
fs/configfs/inode.c | 9 ++++----- fs/sysfs/inode.c | 6 ++++-- lib/kobject_uevent.c | 3 +++ 3 files changed, 11 insertions(+), 7 deletions(-)
---------------
Andrew Morton (1):
lib/kobject_uevent.c: fix CONIG_NET=n warning
Dan Carpenter (1):
kobject: free memory if netlink_kernel_create() fails
Nick Piggin (1):
fix setattr error handling in sysfs, configfs
PATCH 1/3 lib/kobject_uevent.c: fix CONIG_NET=n warning
From: Andrew Morton <[email protected]>
lib/kobject_uevent.c:87: warning: 'kobj_bcast_filter' defined but not used
Repairs "hotplug: netns aware uevent_helper"
--- lib/kobject_uevent.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
lib/kobject_uevent.c +2 -0
@@ -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) {
Signature · 1 line
1.7.1
PATCH 2/3 kobject: free memory if netlink_kernel_create() fails
In reply to Greg KHFrom: Dan Carpenter <[email protected]>
There is a kfree(ue_sk) missing on the error path if netlink_kernel_create() fails.
--- lib/kobject_uevent.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
lib/kobject_uevent.c +1 -0
@@ -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);
Signature · 1 line
1.7.1
PATCH 3/3 fix setattr error handling in sysfs, configfs
In reply to Greg KHFrom: Nick Piggin <[email protected]>
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.
--- fs/configfs/inode.c | 9 ++++----- fs/sysfs/inode.c | 6 ++++-- 2 files changed, 8 insertions(+), 7 deletions(-)
fs/configfs/inode.c +4 -5
@@ -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 )
fs/sysfs/inode.c +4 -2
@@ -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;
Signature · 1 line
1.7.1