Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs

Pull overlayfs bug fixes from Miklos Szeredi:
"This contains fixes for bugs that appeared in earlier kernels (all are
marked for -stable)"

* 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
ovl: free lower_mnt array in ovl_put_super
ovl: free stack of paths in ovl_fill_super
ovl: fix open in stacked overlay
ovl: fix dentry reference leak
ovl: use O_LARGEFILE in ovl_copy_up()

+8 -3
+3 -3
fs/overlayfs/copy_up.c
··· 81 81 if (len == 0) 82 82 return 0; 83 83 84 - old_file = ovl_path_open(old, O_RDONLY); 84 + old_file = ovl_path_open(old, O_LARGEFILE | O_RDONLY); 85 85 if (IS_ERR(old_file)) 86 86 return PTR_ERR(old_file); 87 87 88 - new_file = ovl_path_open(new, O_WRONLY); 88 + new_file = ovl_path_open(new, O_LARGEFILE | O_WRONLY); 89 89 if (IS_ERR(new_file)) { 90 90 error = PTR_ERR(new_file); 91 91 goto out_fput; ··· 267 267 268 268 out_cleanup: 269 269 ovl_cleanup(wdir, newdentry); 270 - goto out; 270 + goto out2; 271 271 } 272 272 273 273 /*
+3
fs/overlayfs/inode.c
··· 363 363 ovl_path_upper(dentry, &realpath); 364 364 } 365 365 366 + if (realpath.dentry->d_flags & DCACHE_OP_SELECT_INODE) 367 + return realpath.dentry->d_op->d_select_inode(realpath.dentry, file_flags); 368 + 366 369 return d_backing_inode(realpath.dentry); 367 370 } 368 371
+2
fs/overlayfs/super.c
··· 544 544 mntput(ufs->upper_mnt); 545 545 for (i = 0; i < ufs->numlower; i++) 546 546 mntput(ufs->lower_mnt[i]); 547 + kfree(ufs->lower_mnt); 547 548 548 549 kfree(ufs->config.lowerdir); 549 550 kfree(ufs->config.upperdir); ··· 1049 1048 oe->lowerstack[i].dentry = stack[i].dentry; 1050 1049 oe->lowerstack[i].mnt = ufs->lower_mnt[i]; 1051 1050 } 1051 + kfree(stack); 1052 1052 1053 1053 root_dentry->d_fsdata = oe; 1054 1054