aboutsummaryrefslogtreecommitdiffstats
path: root/fs/kernfs/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/kernfs/dir.c')
-rw-r--r--fs/kernfs/dir.c50
1 files changed, 25 insertions, 25 deletions
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index d038bb204b54..bc8a3b367a8c 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -78,7 +78,7 @@ static int sysfs_link_sibling(struct kernfs_node *kn)
78 struct rb_node **node = &kn->parent->dir.children.rb_node; 78 struct rb_node **node = &kn->parent->dir.children.rb_node;
79 struct rb_node *parent = NULL; 79 struct rb_node *parent = NULL;
80 80
81 if (sysfs_type(kn) == SYSFS_DIR) 81 if (kernfs_type(kn) == KERNFS_DIR)
82 kn->parent->dir.subdirs++; 82 kn->parent->dir.subdirs++;
83 83
84 while (*node) { 84 while (*node) {
@@ -113,7 +113,7 @@ static int sysfs_link_sibling(struct kernfs_node *kn)
113 */ 113 */
114static void sysfs_unlink_sibling(struct kernfs_node *kn) 114static void sysfs_unlink_sibling(struct kernfs_node *kn)
115{ 115{
116 if (sysfs_type(kn) == SYSFS_DIR) 116 if (kernfs_type(kn) == KERNFS_DIR)
117 kn->parent->dir.subdirs--; 117 kn->parent->dir.subdirs--;
118 118
119 rb_erase(&kn->rb, &kn->parent->dir.children); 119 rb_erase(&kn->rb, &kn->parent->dir.children);
@@ -137,7 +137,7 @@ struct kernfs_node *sysfs_get_active(struct kernfs_node *kn)
137 if (!atomic_inc_unless_negative(&kn->active)) 137 if (!atomic_inc_unless_negative(&kn->active))
138 return NULL; 138 return NULL;
139 139
140 if (kn->flags & SYSFS_FLAG_LOCKDEP) 140 if (kn->flags & KERNFS_LOCKDEP)
141 rwsem_acquire_read(&kn->dep_map, 0, 1, _RET_IP_); 141 rwsem_acquire_read(&kn->dep_map, 0, 1, _RET_IP_);
142 return kn; 142 return kn;
143} 143}
@@ -156,10 +156,10 @@ void sysfs_put_active(struct kernfs_node *kn)
156 if (unlikely(!kn)) 156 if (unlikely(!kn))
157 return; 157 return;
158 158
159 if (kn->flags & SYSFS_FLAG_LOCKDEP) 159 if (kn->flags & KERNFS_LOCKDEP)
160 rwsem_release(&kn->dep_map, 1, _RET_IP_); 160 rwsem_release(&kn->dep_map, 1, _RET_IP_);
161 v = atomic_dec_return(&kn->active); 161 v = atomic_dec_return(&kn->active);
162 if (likely(v != SD_DEACTIVATED_BIAS)) 162 if (likely(v != KN_DEACTIVATED_BIAS))
163 return; 163 return;
164 164
165 /* 165 /*
@@ -180,9 +180,9 @@ static void sysfs_deactivate(struct kernfs_node *kn)
180 DECLARE_COMPLETION_ONSTACK(wait); 180 DECLARE_COMPLETION_ONSTACK(wait);
181 int v; 181 int v;
182 182
183 BUG_ON(!(kn->flags & SYSFS_FLAG_REMOVED)); 183 BUG_ON(!(kn->flags & KERNFS_REMOVED));
184 184
185 if (!(sysfs_type(kn) & SYSFS_ACTIVE_REF)) 185 if (!(kernfs_type(kn) & KERNFS_ACTIVE_REF))
186 return; 186 return;
187 187
188 kn->u.completion = (void *)&wait; 188 kn->u.completion = (void *)&wait;
@@ -191,9 +191,9 @@ static void sysfs_deactivate(struct kernfs_node *kn)
191 /* atomic_add_return() is a mb(), put_active() will always see 191 /* atomic_add_return() is a mb(), put_active() will always see
192 * the updated kn->u.completion. 192 * the updated kn->u.completion.
193 */ 193 */
194 v = atomic_add_return(SD_DEACTIVATED_BIAS, &kn->active); 194 v = atomic_add_return(KN_DEACTIVATED_BIAS, &kn->active);
195 195
196 if (v != SD_DEACTIVATED_BIAS) { 196 if (v != KN_DEACTIVATED_BIAS) {
197 lock_contended(&kn->dep_map, _RET_IP_); 197 lock_contended(&kn->dep_map, _RET_IP_);
198 wait_for_completion(&wait); 198 wait_for_completion(&wait);
199 } 199 }
@@ -235,13 +235,13 @@ void kernfs_put(struct kernfs_node *kn)
235 */ 235 */
236 parent = kn->parent; 236 parent = kn->parent;
237 237
238 WARN(!(kn->flags & SYSFS_FLAG_REMOVED), 238 WARN(!(kn->flags & KERNFS_REMOVED),
239 "sysfs: free using entry: %s/%s\n", 239 "sysfs: free using entry: %s/%s\n",
240 parent ? parent->name : "", kn->name); 240 parent ? parent->name : "", kn->name);
241 241
242 if (sysfs_type(kn) == SYSFS_KOBJ_LINK) 242 if (kernfs_type(kn) == KERNFS_LINK)
243 kernfs_put(kn->symlink.target_kn); 243 kernfs_put(kn->symlink.target_kn);
244 if (sysfs_type(kn) & SYSFS_COPY_NAME) 244 if (kernfs_type(kn) & KERNFS_COPY_NAME)
245 kfree(kn->name); 245 kfree(kn->name);
246 if (kn->iattr) { 246 if (kn->iattr) {
247 if (kn->iattr->ia_secdata) 247 if (kn->iattr->ia_secdata)
@@ -268,7 +268,7 @@ EXPORT_SYMBOL_GPL(kernfs_put);
268static int sysfs_dentry_delete(const struct dentry *dentry) 268static int sysfs_dentry_delete(const struct dentry *dentry)
269{ 269{
270 struct kernfs_node *kn = dentry->d_fsdata; 270 struct kernfs_node *kn = dentry->d_fsdata;
271 return !(kn && !(kn->flags & SYSFS_FLAG_REMOVED)); 271 return !(kn && !(kn->flags & KERNFS_REMOVED));
272} 272}
273 273
274static int sysfs_dentry_revalidate(struct dentry *dentry, unsigned int flags) 274static int sysfs_dentry_revalidate(struct dentry *dentry, unsigned int flags)
@@ -282,7 +282,7 @@ static int sysfs_dentry_revalidate(struct dentry *dentry, unsigned int flags)
282 mutex_lock(&sysfs_mutex); 282 mutex_lock(&sysfs_mutex);
283 283
284 /* The sysfs dirent has been deleted */ 284 /* The sysfs dirent has been deleted */
285 if (kn->flags & SYSFS_FLAG_REMOVED) 285 if (kn->flags & KERNFS_REMOVED)
286 goto out_bad; 286 goto out_bad;
287 287
288 /* The sysfs dirent has been moved? */ 288 /* The sysfs dirent has been moved? */
@@ -342,7 +342,7 @@ struct kernfs_node *sysfs_new_dirent(struct kernfs_root *root,
342 struct kernfs_node *kn; 342 struct kernfs_node *kn;
343 int ret; 343 int ret;
344 344
345 if (type & SYSFS_COPY_NAME) { 345 if (type & KERNFS_COPY_NAME) {
346 name = dup_name = kstrdup(name, GFP_KERNEL); 346 name = dup_name = kstrdup(name, GFP_KERNEL);
347 if (!name) 347 if (!name)
348 return NULL; 348 return NULL;
@@ -362,7 +362,7 @@ struct kernfs_node *sysfs_new_dirent(struct kernfs_root *root,
362 362
363 kn->name = name; 363 kn->name = name;
364 kn->mode = mode; 364 kn->mode = mode;
365 kn->flags = type | SYSFS_FLAG_REMOVED; 365 kn->flags = type | KERNFS_REMOVED;
366 366
367 return kn; 367 return kn;
368 368
@@ -427,7 +427,7 @@ int sysfs_add_one(struct kernfs_addrm_cxt *acxt, struct kernfs_node *kn,
427 return -EINVAL; 427 return -EINVAL;
428 } 428 }
429 429
430 if (sysfs_type(parent) != SYSFS_DIR) 430 if (kernfs_type(parent) != KERNFS_DIR)
431 return -EINVAL; 431 return -EINVAL;
432 432
433 kn->hash = sysfs_name_hash(kn->name, kn->ns); 433 kn->hash = sysfs_name_hash(kn->name, kn->ns);
@@ -446,7 +446,7 @@ int sysfs_add_one(struct kernfs_addrm_cxt *acxt, struct kernfs_node *kn,
446 } 446 }
447 447
448 /* Mark the entry added into directory tree */ 448 /* Mark the entry added into directory tree */
449 kn->flags &= ~SYSFS_FLAG_REMOVED; 449 kn->flags &= ~KERNFS_REMOVED;
450 450
451 return 0; 451 return 0;
452} 452}
@@ -475,7 +475,7 @@ static void sysfs_remove_one(struct kernfs_addrm_cxt *acxt,
475 * Removal can be called multiple times on the same node. Only the 475 * Removal can be called multiple times on the same node. Only the
476 * first invocation is effective and puts the base ref. 476 * first invocation is effective and puts the base ref.
477 */ 477 */
478 if (kn->flags & SYSFS_FLAG_REMOVED) 478 if (kn->flags & KERNFS_REMOVED)
479 return; 479 return;
480 480
481 if (kn->parent) { 481 if (kn->parent) {
@@ -489,7 +489,7 @@ static void sysfs_remove_one(struct kernfs_addrm_cxt *acxt,
489 } 489 }
490 } 490 }
491 491
492 kn->flags |= SYSFS_FLAG_REMOVED; 492 kn->flags |= KERNFS_REMOVED;
493 kn->u.removed_list = acxt->removed; 493 kn->u.removed_list = acxt->removed;
494 acxt->removed = kn; 494 acxt->removed = kn;
495} 495}
@@ -607,14 +607,14 @@ struct kernfs_root *kernfs_create_root(void *priv)
607 607
608 ida_init(&root->ino_ida); 608 ida_init(&root->ino_ida);
609 609
610 kn = sysfs_new_dirent(root, "", S_IFDIR | S_IRUGO | S_IXUGO, SYSFS_DIR); 610 kn = sysfs_new_dirent(root, "", S_IFDIR | S_IRUGO | S_IXUGO, KERNFS_DIR);
611 if (!kn) { 611 if (!kn) {
612 ida_destroy(&root->ino_ida); 612 ida_destroy(&root->ino_ida);
613 kfree(root); 613 kfree(root);
614 return ERR_PTR(-ENOMEM); 614 return ERR_PTR(-ENOMEM);
615 } 615 }
616 616
617 kn->flags &= ~SYSFS_FLAG_REMOVED; 617 kn->flags &= ~KERNFS_REMOVED;
618 kn->priv = priv; 618 kn->priv = priv;
619 kn->dir.root = root; 619 kn->dir.root = root;
620 620
@@ -654,7 +654,7 @@ struct kernfs_node *kernfs_create_dir_ns(struct kernfs_node *parent,
654 int rc; 654 int rc;
655 655
656 /* allocate */ 656 /* allocate */
657 kn = sysfs_new_dirent(kernfs_root(parent), name, mode, SYSFS_DIR); 657 kn = sysfs_new_dirent(kernfs_root(parent), name, mode, KERNFS_DIR);
658 if (!kn) 658 if (!kn)
659 return ERR_PTR(-ENOMEM); 659 return ERR_PTR(-ENOMEM);
660 660
@@ -732,7 +732,7 @@ static struct kernfs_node *sysfs_leftmost_descendant(struct kernfs_node *pos)
732 732
733 last = pos; 733 last = pos;
734 734
735 if (sysfs_type(pos) != SYSFS_DIR) 735 if (kernfs_type(pos) != KERNFS_DIR)
736 break; 736 break;
737 737
738 rbn = rb_first(&pos->dir.children); 738 rbn = rb_first(&pos->dir.children);
@@ -914,7 +914,7 @@ static struct kernfs_node *sysfs_dir_pos(const void *ns,
914 struct kernfs_node *parent, loff_t hash, struct kernfs_node *pos) 914 struct kernfs_node *parent, loff_t hash, struct kernfs_node *pos)
915{ 915{
916 if (pos) { 916 if (pos) {
917 int valid = !(pos->flags & SYSFS_FLAG_REMOVED) && 917 int valid = !(pos->flags & KERNFS_REMOVED) &&
918 pos->parent == parent && hash == pos->hash; 918 pos->parent == parent && hash == pos->hash;
919 kernfs_put(pos); 919 kernfs_put(pos);
920 if (!valid) 920 if (!valid)