kernfs: implement kernfs_path_len()
Add a function to determine the path length of a kernfs node. This for now will be used by writeback tracepoint updates. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
@@ -91,6 +91,29 @@ int kernfs_name(struct kernfs_node *kn, char *buf, size_t buflen)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* kernfs_path_len - determine the length of the full path of a given node
|
||||
* @kn: kernfs_node of interest
|
||||
*
|
||||
* The returned length doesn't include the space for the terminating '\0'.
|
||||
*/
|
||||
size_t kernfs_path_len(struct kernfs_node *kn)
|
||||
{
|
||||
size_t len = 0;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&kernfs_rename_lock, flags);
|
||||
|
||||
do {
|
||||
len += strlen(kn->name) + 1;
|
||||
kn = kn->parent;
|
||||
} while (kn && kn->parent);
|
||||
|
||||
spin_unlock_irqrestore(&kernfs_rename_lock, flags);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
/**
|
||||
* kernfs_path - build full path of a given node
|
||||
* @kn: kernfs_node of interest
|
||||
|
Reference in New Issue
Block a user