jlec 15/04/20 07:24:21 Added: pax-4.patch README.gentoo Log: New version (Portage version: 2.2.18/cvs/Linux x86_64, signed Manifest commit with key B9D4F231BD1558AB!)
Revision Changes Path 1.1 sys-fs/aufs4/files/pax-4.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs4/files/pax-4.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs4/files/pax-4.patch?rev=1.1&content-type=text/plain Index: pax-4.patch =================================================================== --- a/fs/aufs/dynop.c 2012-10-09 15:41:32.652989534 -0400 +++ b/fs/aufs/dynop.c 2012-10-09 15:41:58.562989820 -0400 @@ -149,9 +149,11 @@ #define DySet(func, dst, src, h_op, h_sb) do { \ DyDbgInc(cnt); \ if (h_op->func) { \ - if (src.func) \ - dst.func = src.func; \ - else \ + if (src.func) { \ + pax_open_kernel(); \ + *(void **)&dst.func = src.func; \ + pax_close_kernel(); \ + } else \ AuDbg("%s %s\n", au_sbtype(h_sb), #func); \ } \ } while (0) @@ -159,7 +161,9 @@ #define DySetForce(func, dst, src) do { \ AuDebugOn(!src.func); \ DyDbgInc(cnt); \ - dst.func = src.func; \ + pax_open_kernel(); \ + *(void **)&dst.func = src.func; \ + pax_close_kernel(); \ } while (0) #define DySetAop(func) \ @@ -266,15 +270,17 @@ */ static void dy_adx(struct au_dyaop *dyaop, int do_dx) { + pax_open_kernel(); if (!do_dx) { - dyaop->da_op.direct_IO = NULL; - dyaop->da_op.get_xip_mem = NULL; + *(void **)&dyaop->da_op.direct_IO = NULL; + *(void **)&dyaop->da_op.get_xip_mem = NULL; } else { - dyaop->da_op.direct_IO = aufs_aop.direct_IO; - dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem; + *(void **)&dyaop->da_op.direct_IO = aufs_aop.direct_IO; + *(void **)&dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem; if (!dyaop->da_get_xip_mem) - dyaop->da_op.get_xip_mem = NULL; + *(void **)&dyaop->da_op.get_xip_mem = NULL; } + pax_close_kernel(); } static struct au_dyaop *dy_aget(struct au_branch *br, --- a/fs/aufs/f_op_sp.c 2012-10-09 15:41:32.652989534 -0400 +++ b/fs/aufs/f_op_sp.c 2012-10-09 15:41:58.562989820 -0400 @@ -104,7 +104,7 @@ static int aufs_open_sp(struct inode *inode, struct file *file); static struct au_sp_fop { int done; - struct file_operations fop; /* not 'const' */ + file_operations_no_const fop; /* not 'const' */ spinlock_t spin; } au_sp_fop[AuSp_Last] = { [AuSp_FIFO] = { @@ -157,8 +157,10 @@ h_file = au_hf_top(file); spin_lock(&p->spin); if (!p->done) { - p->fop = *h_file->f_op; + pax_open_kernel(); + memcpy((void *)&p->fop, h_file->f_op, sizeof(p->fop)); p->fop.owner = THIS_MODULE; + pax_close_kernel(); if (p->fop.aio_read) p->fop.aio_read = aufs_aio_read_sp; if (p->fop.aio_write) --- a/fs/aufs/sysfs.c 2013-10-20 17:08:37.000000000 -0400 +++ b/fs/aufs/sysfs.c 2013-10-19 17:08:29.000000000 -0400 @@ -233,8 +233,10 @@ for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) { attr = &br_sysfs->attr; sysfs_attr_init(attr); - attr->name = br_sysfs->name; - attr->mode = S_IRUGO; + pax_open_kernel(); + *(void **)&attr->name = br_sysfs->name; + *(void **)&attr->mode = S_IRUGO; + pax_close_kernel(); br_sysfs++; } } 1.1 sys-fs/aufs4/files/README.gentoo file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs4/files/README.gentoo?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs4/files/README.gentoo?rev=1.1&content-type=text/plain Index: README.gentoo =================================================================== There several other patches in aufs3. They are all optional. When you meet some problems, they will help you. You can find them in the documentation directory. - aufs3-loopback.patch Supports a nested loopback mount in a branch-fs. This patch is unnecessary until aufs produces a message such like "you may want to try another patch for loopback file". - vfs-ino.patch Modifies a system global kernel internal function get_next_ino() in order to stop assigning 0 for an inode-number. Not directly related to aufs, but recommended generally. - tmpfs-idr.patch Keeps the tmpfs inode number as the lowest value. Effective to reduce the size of aufs XINO files for tmpfs branch. Also it prevents the duplication of inode number, which is important for backup tools, aubrsync or other utilities. When you find aufs XINO files for tmpfs branch growing too much, try this patch.
