Re: [PATCH 1/5] sysfs: relay channel buffers as sysfs attributes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Paul Mundt <[email protected]>:

On Thu, Feb 23, 2006 at 04:29:35PM +0530, Maneesh Soni wrote:
On Sun, Feb 19, 2006 at 11:07:57PM +0200, Paul Mundt wrote:
> +	dentry = lookup_one_len(filename, parent, strlen(filename));

lookup_one_len() needs parent's i_mutex.

Good catch, thanks.

> +	if (IS_ERR(dentry))
> +		sysfs_hash_and_remove(parent, filename);

Also wondering if you have considered the case of -EEXIST?

How is that going to happen? The line before we do sysfs_add_file(), and
if that errors out, then we never make it to lookup_one_len().


well, there is no check in sysfs_add_file() (probably it should have?) for -EEXIST. Till
now, the dentry/inode for sysfs files are allocated only when
the file is looked up at the first instance. Where here (for relay files)
dentry/inodes are being allocated at the time of creation.

IOW, the check for existing files is being done at the time of
assigning the inode (as in fs/sysfs/inode.c:sysfs_create()) when someone looks for the
file.
->sysfs_lookup()-->sysfs_attach_attr()-->sysfs_create()

The IS_ERR() check is pretty superfluous anyways, perhaps it makes more
sense just to remove it and the sysfs_hash_and_remove() reference
entirely.

hmm.. probably not, looks like it is needed. The extra sysfs_dirent which
got added in sysfs_add_file() will be removed by sysfs_hash_and_remove() in
case of -EEXIST.

Thanks
Maneesh

PS: Sorry for previous message with incorrect reply-to address.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux