* [PATCH 2.6.19-git] Fix error handling in create_files()
@ 2006-10-09 16:40 Luca Tettamanti
2006-10-09 16:48 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Luca Tettamanti @ 2006-10-09 16:40 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-kernel
Hello,
current code in create_files() detects an error iff the last
sysfs_add_file fails:
for (attr = grp->attrs; *attr && !error; attr++) {
error = sysfs_add_file(dir, *attr, SYSFS_KOBJ_ATTR);
}
if (error)
remove_files(dir,grp);
In order to do the proper cleanup upon failure 'error' must be checked on
every iteration.
Signed-Off-By: Luca Tettamanti <kronos.it@gmail.com>
---
fs/sysfs/group.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/sysfs/group.c b/fs/sysfs/group.c
index 122145b..1c490d6 100644
--- a/fs/sysfs/group.c
+++ b/fs/sysfs/group.c
@@ -33,6 +33,8 @@ static int create_files(struct dentry *
for (attr = grp->attrs; *attr && !error; attr++) {
error = sysfs_add_file(dir, *attr, SYSFS_KOBJ_ATTR);
+ if (error)
+ break;
}
if (error)
remove_files(dir,grp);
Luca
--
Recursion n.:
See Recursion.
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2.6.19-git] Fix error handling in create_files()
2006-10-09 16:40 [PATCH 2.6.19-git] Fix error handling in create_files() Luca Tettamanti
@ 2006-10-09 16:48 ` Greg KH
2006-10-09 17:03 ` Luca Tettamanti
0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2006-10-09 16:48 UTC (permalink / raw)
To: Luca Tettamanti; +Cc: linux-kernel
On Mon, Oct 09, 2006 at 06:40:17PM +0200, Luca Tettamanti wrote:
> Hello,
> current code in create_files() detects an error iff the last
> sysfs_add_file fails:
>
> for (attr = grp->attrs; *attr && !error; attr++) {
> error = sysfs_add_file(dir, *attr, SYSFS_KOBJ_ATTR);
> }
> if (error)
> remove_files(dir,grp);
>
> In order to do the proper cleanup upon failure 'error' must be checked on
> every iteration.
But it is, look up there in the "!error" test, right?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2.6.19-git] Fix error handling in create_files()
2006-10-09 16:48 ` Greg KH
@ 2006-10-09 17:03 ` Luca Tettamanti
2006-10-09 17:22 ` Cornelia Huck
0 siblings, 1 reply; 4+ messages in thread
From: Luca Tettamanti @ 2006-10-09 17:03 UTC (permalink / raw)
To: Greg KH; +Cc: linux-kernel
Il Mon, Oct 09, 2006 at 09:48:20AM -0700, Greg KH ha scritto:
> On Mon, Oct 09, 2006 at 06:40:17PM +0200, Luca Tettamanti wrote:
> > Hello,
> > current code in create_files() detects an error iff the last
> > sysfs_add_file fails:
> >
> > for (attr = grp->attrs; *attr && !error; attr++) {
> > error = sysfs_add_file(dir, *attr, SYSFS_KOBJ_ATTR);
> > }
> > if (error)
> > remove_files(dir,grp);
> >
> > In order to do the proper cleanup upon failure 'error' must be checked on
> > every iteration.
>
> But it is, look up there in the "!error" test, right?
Ah, right. I totally missed it.
While we are at it: is it safe to always call sysfs_remove_group even if
the preceding sysfs_create_group failed?
(I'm looking at this warning:
arch/i386/kernel/cpu/mcheck/therm_throt.c: In function 'thermal_throttle_add_dev':
arch/i386/kernel/cpu/mcheck/therm_throt.c:115: warning: ignoring return value of
'sysfs_create_group', declared with attribute warn_unused_result
)
Luca
--
42
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2.6.19-git] Fix error handling in create_files()
2006-10-09 17:03 ` Luca Tettamanti
@ 2006-10-09 17:22 ` Cornelia Huck
0 siblings, 0 replies; 4+ messages in thread
From: Cornelia Huck @ 2006-10-09 17:22 UTC (permalink / raw)
To: Luca Tettamanti; +Cc: Greg KH, linux-kernel
On Mon, 9 Oct 2006 19:03:57 +0200,
Luca Tettamanti <kronos.it@gmail.com> wrote:
> While we are at it: is it safe to always call sysfs_remove_group even if
> the preceding sysfs_create_group failed?
No, it will oops in remove_dir(). (See also the recent discussion in
"drivers/base: error handling fixes" - drivers/base/topology.c has
problems in that area as well...)
--
Cornelia Huck
Linux for zSeries Developer
Tel.: +49-7031-16-4837, Mail: cornelia.huck@de.ibm.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-10-09 17:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-09 16:40 [PATCH 2.6.19-git] Fix error handling in create_files() Luca Tettamanti
2006-10-09 16:48 ` Greg KH
2006-10-09 17:03 ` Luca Tettamanti
2006-10-09 17:22 ` Cornelia Huck
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.