wok diff linux/stuff/aufs3-base.patch @ rev 25438

Update some web_site
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Sep 01 11:12:31 2022 +0000 (22 months ago)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/linux/stuff/aufs3-base.patch	Thu Sep 01 11:12:31 2022 +0000
     1.3 @@ -0,0 +1,149 @@
     1.4 +aufs3.16 base patch
     1.5 +
     1.6 +diff --git a/MAINTAINERS b/MAINTAINERS
     1.7 +index c2066f4..f07a989 100644
     1.8 +--- a/MAINTAINERS
     1.9 ++++ b/MAINTAINERS
    1.10 +@@ -1698,6 +1698,20 @@ F:	include/linux/audit.h
    1.11 + F:	include/uapi/linux/audit.h
    1.12 + F:	kernel/audit*
    1.13 + 
    1.14 ++AUFS (advanced multi layered unification filesystem) FILESYSTEM
    1.15 ++M:	"J. R. Okajima" <hooanon05g@gmail.com>
    1.16 ++L:	linux-unionfs@vger.kernel.org
    1.17 ++L:	aufs-users@lists.sourceforge.net (members only)
    1.18 ++W:	http://aufs.sourceforge.net
    1.19 ++T:	git://git.code.sf.net/p/aufs/aufs3-linux
    1.20 ++T:	git://github.com/sfjro/aufs3-linux.git
    1.21 ++S:	Supported
    1.22 ++F:	Documentation/filesystems/aufs/
    1.23 ++F:	Documentation/ABI/testing/debugfs-aufs
    1.24 ++F:	Documentation/ABI/testing/sysfs-aufs
    1.25 ++F:	fs/aufs/
    1.26 ++F:	include/uapi/linux/aufs_type.h
    1.27 ++
    1.28 + AUXILIARY DISPLAY DRIVERS
    1.29 + M:	Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
    1.30 + W:	http://miguelojeda.es/auxdisplay.htm
    1.31 +diff --git a/drivers/block/loop.c b/drivers/block/loop.c
    1.32 +index 6cb1beb..30efd68 100644
    1.33 +--- a/drivers/block/loop.c
    1.34 ++++ b/drivers/block/loop.c
    1.35 +@@ -692,6 +692,24 @@ static inline int is_loop_device(struct file *file)
    1.36 + 	return i && S_ISBLK(i->i_mode) && MAJOR(i->i_rdev) == LOOP_MAJOR;
    1.37 + }
    1.38 + 
    1.39 ++/*
    1.40 ++ * for AUFS
    1.41 ++ * no get/put for file.
    1.42 ++ */
    1.43 ++struct file *loop_backing_file(struct super_block *sb)
    1.44 ++{
    1.45 ++	struct file *ret;
    1.46 ++	struct loop_device *l;
    1.47 ++
    1.48 ++	ret = NULL;
    1.49 ++	if (MAJOR(sb->s_dev) == LOOP_MAJOR) {
    1.50 ++		l = sb->s_bdev->bd_disk->private_data;
    1.51 ++		ret = l->lo_backing_file;
    1.52 ++	}
    1.53 ++	return ret;
    1.54 ++}
    1.55 ++EXPORT_SYMBOL(loop_backing_file);
    1.56 ++
    1.57 + /* loop sysfs attributes */
    1.58 + 
    1.59 + static ssize_t loop_attr_show(struct device *dev, char *page,
    1.60 +diff --git a/fs/dcache.c b/fs/dcache.c
    1.61 +index 06f6585..0ea8c4a 100644
    1.62 +--- a/fs/dcache.c
    1.63 ++++ b/fs/dcache.c
    1.64 +@@ -1057,7 +1057,7 @@ enum d_walk_ret {
    1.65 +  *
    1.66 +  * The @enter() and @finish() callbacks are called with d_lock held.
    1.67 +  */
    1.68 +-static void d_walk(struct dentry *parent, void *data,
    1.69 ++void d_walk(struct dentry *parent, void *data,
    1.70 + 		   enum d_walk_ret (*enter)(void *, struct dentry *),
    1.71 + 		   void (*finish)(void *))
    1.72 + {
    1.73 +diff --git a/fs/inode.c b/fs/inode.c
    1.74 +index 6eecb7f..b225c0f 100644
    1.75 +--- a/fs/inode.c
    1.76 ++++ b/fs/inode.c
    1.77 +@@ -1496,7 +1496,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
    1.78 +  * This does the actual work of updating an inodes time or version.  Must have
    1.79 +  * had called mnt_want_write() before calling this.
    1.80 +  */
    1.81 +-static int update_time(struct inode *inode, struct timespec *time, int flags)
    1.82 ++int update_time(struct inode *inode, struct timespec *time, int flags)
    1.83 + {
    1.84 + 	if (inode->i_op->update_time)
    1.85 + 		return inode->i_op->update_time(inode, time, flags);
    1.86 +diff --git a/fs/splice.c b/fs/splice.c
    1.87 +index f5cb9ba..9ba380c 100644
    1.88 +--- a/fs/splice.c
    1.89 ++++ b/fs/splice.c
    1.90 +@@ -1114,8 +1114,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
    1.91 + /*
    1.92 +  * Attempt to initiate a splice from pipe to file.
    1.93 +  */
    1.94 +-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
    1.95 +-			   loff_t *ppos, size_t len, unsigned int flags)
    1.96 ++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
    1.97 ++		    loff_t *ppos, size_t len, unsigned int flags)
    1.98 + {
    1.99 + 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
   1.100 + 				loff_t *, size_t, unsigned int);
   1.101 +@@ -1131,9 +1131,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
   1.102 + /*
   1.103 +  * Attempt to initiate a splice from a file to a pipe.
   1.104 +  */
   1.105 +-static long do_splice_to(struct file *in, loff_t *ppos,
   1.106 +-			 struct pipe_inode_info *pipe, size_t len,
   1.107 +-			 unsigned int flags)
   1.108 ++long do_splice_to(struct file *in, loff_t *ppos,
   1.109 ++		  struct pipe_inode_info *pipe, size_t len,
   1.110 ++		  unsigned int flags)
   1.111 + {
   1.112 + 	ssize_t (*splice_read)(struct file *, loff_t *,
   1.113 + 			       struct pipe_inode_info *, size_t, unsigned int);
   1.114 +diff --git a/include/linux/file.h b/include/linux/file.h
   1.115 +index 4d69123..62cffc0 100644
   1.116 +--- a/include/linux/file.h
   1.117 ++++ b/include/linux/file.h
   1.118 +@@ -19,6 +19,7 @@ struct dentry;
   1.119 + struct path;
   1.120 + extern struct file *alloc_file(struct path *, fmode_t mode,
   1.121 + 	const struct file_operations *fop);
   1.122 ++extern struct file *get_empty_filp(void);
   1.123 + 
   1.124 + static inline void fput_light(struct file *file, int fput_needed)
   1.125 + {
   1.126 +diff --git a/include/linux/fs.h b/include/linux/fs.h
   1.127 +index e11d60c..2f32b35 100644
   1.128 +--- a/include/linux/fs.h
   1.129 ++++ b/include/linux/fs.h
   1.130 +@@ -2618,6 +2618,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
   1.131 + extern int inode_newsize_ok(const struct inode *, loff_t offset);
   1.132 + extern void setattr_copy(struct inode *inode, const struct iattr *attr);
   1.133 + 
   1.134 ++extern int update_time(struct inode *, struct timespec *, int);
   1.135 + extern int file_update_time(struct file *file);
   1.136 + 
   1.137 + extern int generic_show_options(struct seq_file *m, struct dentry *root);
   1.138 +diff --git a/include/linux/splice.h b/include/linux/splice.h
   1.139 +index da2751d..2e0fca6 100644
   1.140 +--- a/include/linux/splice.h
   1.141 ++++ b/include/linux/splice.h
   1.142 +@@ -83,4 +83,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
   1.143 + extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
   1.144 + 
   1.145 + extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
   1.146 ++
   1.147 ++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
   1.148 ++			   loff_t *ppos, size_t len, unsigned int flags);
   1.149 ++extern long do_splice_to(struct file *in, loff_t *ppos,
   1.150 ++			 struct pipe_inode_info *pipe, size_t len,
   1.151 ++			 unsigned int flags);
   1.152 + #endif