|
@@ -156,6 +156,10 @@ static void sysfs_deactivate(struct sysfs_dirent *sd)
|
|
int v;
|
|
int v;
|
|
|
|
|
|
BUG_ON(sd->s_sibling || !(sd->s_flags & SYSFS_FLAG_REMOVED));
|
|
BUG_ON(sd->s_sibling || !(sd->s_flags & SYSFS_FLAG_REMOVED));
|
|
|
|
+
|
|
|
|
+ if (!(sysfs_type(sd) & SYSFS_ACTIVE_REF))
|
|
|
|
+ return;
|
|
|
|
+
|
|
sd->s_sibling = (void *)&wait;
|
|
sd->s_sibling = (void *)&wait;
|
|
|
|
|
|
rwsem_acquire(&sd->dep_map, 0, 0, _RET_IP_);
|
|
rwsem_acquire(&sd->dep_map, 0, 0, _RET_IP_);
|
|
@@ -315,7 +319,6 @@ struct sysfs_dirent *sysfs_new_dirent(const char *name, umode_t mode, int type)
|
|
|
|
|
|
atomic_set(&sd->s_count, 1);
|
|
atomic_set(&sd->s_count, 1);
|
|
atomic_set(&sd->s_active, 0);
|
|
atomic_set(&sd->s_active, 0);
|
|
- sysfs_dirent_init_lockdep(sd);
|
|
|
|
|
|
|
|
sd->s_name = name;
|
|
sd->s_name = name;
|
|
sd->s_mode = mode;
|
|
sd->s_mode = mode;
|