Lines Matching defs:path

84  * With RCU path tracing, it may race with d_move(). Use READ_ONCE() to
105 const struct path *root, struct prepend_buffer *p)
141 * prepend_path - Prepend path string to a buffer
142 * @path: the dentry/vfsmount to report
156 static int prepend_path(const struct path *path,
157 const struct path *root,
172 error = __prepend_path(path->dentry, real_mount(path->mnt), root, &b);
200 * __d_path - return the path of a dentry
201 * @path: the dentry/vfsmount to report
206 * Convert a dentry into an ASCII path name.
209 * path was too long.
213 * If the path is not reachable from the supplied root, return %NULL.
215 char *__d_path(const struct path *path,
216 const struct path *root,
222 if (unlikely(prepend_path(path, root, &b) > 0))
227 char *d_absolute_path(const struct path *path,
230 struct path root = {};
234 if (unlikely(prepend_path(path, &root, &b) > 1))
239 static void get_fs_root_rcu(struct fs_struct *fs, struct path *root)
250 * d_path - return the path of a dentry
251 * @path: path to report
255 * Convert a dentry into an ASCII path name. If the entry has been deleted
258 * Returns a pointer into the buffer or an error code if the path was
265 char *d_path(const struct path *path, char *buf, int buflen)
268 struct path root;
278 * path->dentry == path->mnt->mnt_root. In that case don't call d_dname
279 * and instead have d_path return the mounted path.
281 if (path->dentry->d_op && path->dentry->d_op->d_dname &&
282 (!IS_ROOT(path->dentry) || path->dentry != path->mnt->mnt_root))
283 return path->dentry->d_op->d_dname(path->dentry, buf, buflen);
287 if (unlikely(d_unlinked(path->dentry)))
291 prepend_path(path, &root, &b);
382 static void get_fs_root_and_pwd_rcu(struct fs_struct *fs, struct path *root,
383 struct path *pwd)
415 struct path pwd, root;