All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.