Merge branch 'linux-next' of git://git.open-osd.org/linux-open-osd
[deliverable/linux.git] / include / linux / fs_struct.h
... / ...
CommitLineData
1#ifndef _LINUX_FS_STRUCT_H
2#define _LINUX_FS_STRUCT_H
3
4#include <linux/path.h>
5#include <linux/spinlock.h>
6#include <linux/seqlock.h>
7
8struct fs_struct {
9 int users;
10 spinlock_t lock;
11 seqcount_t seq;
12 int umask;
13 int in_exec;
14 struct path root, pwd;
15};
16
17extern struct kmem_cache *fs_cachep;
18
19extern void exit_fs(struct task_struct *);
20extern void set_fs_root(struct fs_struct *, struct path *);
21extern void set_fs_pwd(struct fs_struct *, struct path *);
22extern struct fs_struct *copy_fs_struct(struct fs_struct *);
23extern void free_fs_struct(struct fs_struct *);
24extern void daemonize_fs_struct(void);
25extern int unshare_fs_struct(void);
26
27static inline void get_fs_root(struct fs_struct *fs, struct path *root)
28{
29 spin_lock(&fs->lock);
30 *root = fs->root;
31 path_get(root);
32 spin_unlock(&fs->lock);
33}
34
35static inline void get_fs_pwd(struct fs_struct *fs, struct path *pwd)
36{
37 spin_lock(&fs->lock);
38 *pwd = fs->pwd;
39 path_get(pwd);
40 spin_unlock(&fs->lock);
41}
42
43static inline void get_fs_root_and_pwd(struct fs_struct *fs, struct path *root,
44 struct path *pwd)
45{
46 spin_lock(&fs->lock);
47 *root = fs->root;
48 path_get(root);
49 *pwd = fs->pwd;
50 path_get(pwd);
51 spin_unlock(&fs->lock);
52}
53
54#endif /* _LINUX_FS_STRUCT_H */
This page took 0.023065 seconds and 5 git commands to generate.