git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
fs
/
sysfs
/
inode.c
diff --git
a/fs/sysfs/inode.c
b/fs/sysfs/inode.c
index
44ea5a0
..
e79e38d
100644
(file)
--- a/
fs/sysfs/inode.c
+++ b/
fs/sysfs/inode.c
@@
-12,6
+12,7
@@
#include <linux/namei.h>
#include <linux/backing-dev.h>
#include <linux/capability.h>
#include <linux/namei.h>
#include <linux/backing-dev.h>
#include <linux/capability.h>
+#include <linux/errno.h>
#include "sysfs.h"
extern struct super_block * sysfs_sb;
#include "sysfs.h"
extern struct super_block * sysfs_sb;
@@
-233,17
+234,18
@@
void sysfs_drop_dentry(struct sysfs_dirent * sd, struct dentry * parent)
}
}
}
}
-
void
sysfs_hash_and_remove(struct dentry * dir, const char * name)
+
int
sysfs_hash_and_remove(struct dentry * dir, const char * name)
{
struct sysfs_dirent * sd;
struct sysfs_dirent * parent_sd;
{
struct sysfs_dirent * sd;
struct sysfs_dirent * parent_sd;
+ int found = 0;
if (!dir)
if (!dir)
- return;
+ return
-ENOENT
;
if (dir->d_inode == NULL)
/* no inode means this hasn't been made visible yet */
if (dir->d_inode == NULL)
/* no inode means this hasn't been made visible yet */
- return;
+ return
-ENOENT
;
parent_sd = dir->d_fsdata;
mutex_lock(&dir->d_inode->i_mutex);
parent_sd = dir->d_fsdata;
mutex_lock(&dir->d_inode->i_mutex);
@@
-254,8
+256,11
@@
void sysfs_hash_and_remove(struct dentry * dir, const char * name)
list_del_init(&sd->s_sibling);
sysfs_drop_dentry(sd, dir);
sysfs_put(sd);
list_del_init(&sd->s_sibling);
sysfs_drop_dentry(sd, dir);
sysfs_put(sd);
+ found = 1;
break;
}
}
mutex_unlock(&dir->d_inode->i_mutex);
break;
}
}
mutex_unlock(&dir->d_inode->i_mutex);
+
+ return found ? 0 : -ENOENT;
}
}