wok-6.x view linux/stuff/aufs3-base.patch @ rev 24782
Up alpine (2.25)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Mar 20 12:08:15 2022 +0000 (2022-03-20) |
parents | |
children |
line source
1 aufs3.16 base patch
3 diff --git a/MAINTAINERS b/MAINTAINERS
4 index c2066f4..f07a989 100644
5 --- a/MAINTAINERS
6 +++ b/MAINTAINERS
7 @@ -1698,6 +1698,20 @@ F: include/linux/audit.h
8 F: include/uapi/linux/audit.h
9 F: kernel/audit*
11 +AUFS (advanced multi layered unification filesystem) FILESYSTEM
12 +M: "J. R. Okajima" <hooanon05g@gmail.com>
13 +L: linux-unionfs@vger.kernel.org
14 +L: aufs-users@lists.sourceforge.net (members only)
15 +W: http://aufs.sourceforge.net
16 +T: git://git.code.sf.net/p/aufs/aufs3-linux
17 +T: git://github.com/sfjro/aufs3-linux.git
18 +S: Supported
19 +F: Documentation/filesystems/aufs/
20 +F: Documentation/ABI/testing/debugfs-aufs
21 +F: Documentation/ABI/testing/sysfs-aufs
22 +F: fs/aufs/
23 +F: include/uapi/linux/aufs_type.h
24 +
25 AUXILIARY DISPLAY DRIVERS
26 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
27 W: http://miguelojeda.es/auxdisplay.htm
28 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
29 index 6cb1beb..30efd68 100644
30 --- a/drivers/block/loop.c
31 +++ b/drivers/block/loop.c
32 @@ -692,6 +692,24 @@ static inline int is_loop_device(struct file *file)
33 return i && S_ISBLK(i->i_mode) && MAJOR(i->i_rdev) == LOOP_MAJOR;
34 }
36 +/*
37 + * for AUFS
38 + * no get/put for file.
39 + */
40 +struct file *loop_backing_file(struct super_block *sb)
41 +{
42 + struct file *ret;
43 + struct loop_device *l;
44 +
45 + ret = NULL;
46 + if (MAJOR(sb->s_dev) == LOOP_MAJOR) {
47 + l = sb->s_bdev->bd_disk->private_data;
48 + ret = l->lo_backing_file;
49 + }
50 + return ret;
51 +}
52 +EXPORT_SYMBOL(loop_backing_file);
53 +
54 /* loop sysfs attributes */
56 static ssize_t loop_attr_show(struct device *dev, char *page,
57 diff --git a/fs/dcache.c b/fs/dcache.c
58 index 06f6585..0ea8c4a 100644
59 --- a/fs/dcache.c
60 +++ b/fs/dcache.c
61 @@ -1057,7 +1057,7 @@ enum d_walk_ret {
62 *
63 * The @enter() and @finish() callbacks are called with d_lock held.
64 */
65 -static void d_walk(struct dentry *parent, void *data,
66 +void d_walk(struct dentry *parent, void *data,
67 enum d_walk_ret (*enter)(void *, struct dentry *),
68 void (*finish)(void *))
69 {
70 diff --git a/fs/inode.c b/fs/inode.c
71 index 6eecb7f..b225c0f 100644
72 --- a/fs/inode.c
73 +++ b/fs/inode.c
74 @@ -1496,7 +1496,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
75 * This does the actual work of updating an inodes time or version. Must have
76 * had called mnt_want_write() before calling this.
77 */
78 -static int update_time(struct inode *inode, struct timespec *time, int flags)
79 +int update_time(struct inode *inode, struct timespec *time, int flags)
80 {
81 if (inode->i_op->update_time)
82 return inode->i_op->update_time(inode, time, flags);
83 diff --git a/fs/splice.c b/fs/splice.c
84 index f5cb9ba..9ba380c 100644
85 --- a/fs/splice.c
86 +++ b/fs/splice.c
87 @@ -1114,8 +1114,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
88 /*
89 * Attempt to initiate a splice from pipe to file.
90 */
91 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
92 - loff_t *ppos, size_t len, unsigned int flags)
93 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
94 + loff_t *ppos, size_t len, unsigned int flags)
95 {
96 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
97 loff_t *, size_t, unsigned int);
98 @@ -1131,9 +1131,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
99 /*
100 * Attempt to initiate a splice from a file to a pipe.
101 */
102 -static long do_splice_to(struct file *in, loff_t *ppos,
103 - struct pipe_inode_info *pipe, size_t len,
104 - unsigned int flags)
105 +long do_splice_to(struct file *in, loff_t *ppos,
106 + struct pipe_inode_info *pipe, size_t len,
107 + unsigned int flags)
108 {
109 ssize_t (*splice_read)(struct file *, loff_t *,
110 struct pipe_inode_info *, size_t, unsigned int);
111 diff --git a/include/linux/file.h b/include/linux/file.h
112 index 4d69123..62cffc0 100644
113 --- a/include/linux/file.h
114 +++ b/include/linux/file.h
115 @@ -19,6 +19,7 @@ struct dentry;
116 struct path;
117 extern struct file *alloc_file(struct path *, fmode_t mode,
118 const struct file_operations *fop);
119 +extern struct file *get_empty_filp(void);
121 static inline void fput_light(struct file *file, int fput_needed)
122 {
123 diff --git a/include/linux/fs.h b/include/linux/fs.h
124 index e11d60c..2f32b35 100644
125 --- a/include/linux/fs.h
126 +++ b/include/linux/fs.h
127 @@ -2618,6 +2618,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
128 extern int inode_newsize_ok(const struct inode *, loff_t offset);
129 extern void setattr_copy(struct inode *inode, const struct iattr *attr);
131 +extern int update_time(struct inode *, struct timespec *, int);
132 extern int file_update_time(struct file *file);
134 extern int generic_show_options(struct seq_file *m, struct dentry *root);
135 diff --git a/include/linux/splice.h b/include/linux/splice.h
136 index da2751d..2e0fca6 100644
137 --- a/include/linux/splice.h
138 +++ b/include/linux/splice.h
139 @@ -83,4 +83,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
140 extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
142 extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
143 +
144 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
145 + loff_t *ppos, size_t len, unsigned int flags);
146 +extern long do_splice_to(struct file *in, loff_t *ppos,
147 + struct pipe_inode_info *pipe, size_t len,
148 + unsigned int flags);
149 #endif