[linux] 01/01: ovl: conditionally use O_LARGEFILE in ovl_copy_up() (Closes: #800724)

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Sat Oct 3 00:41:40 UTC 2015


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch sid
in repository linux.

commit 7427111a9f94d689efeb98b63870a7948401ac80
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Sat Oct 3 00:15:44 2015 +0100

    ovl: conditionally use O_LARGEFILE in ovl_copy_up() (Closes: #800724)
---
 debian/changelog                                   |  6 +++
 ...ditionally-use-o_largefile-in-ovl_copy_up.patch | 43 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 50 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 62e165e..8cad1cf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+linux (4.2.1-3) UNRELEASED; urgency=medium
+
+  * ovl: conditionally use O_LARGEFILE in ovl_copy_up()
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sat, 03 Oct 2015 00:14:59 +0100
+
 linux (4.2.1-2) unstable; urgency=medium
 
   * media: uvcvideo: Disable hardware timestamps by default (Closes: #794327)
diff --git a/debian/patches/bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch b/debian/patches/bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch
new file mode 100644
index 0000000..96d3bb7
--- /dev/null
+++ b/debian/patches/bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch
@@ -0,0 +1,43 @@
+From: David Howells <dhowells at redhat.com>
+Date: Fri, 18 Sep 2015 11:45:12 +0100
+Subject: ovl: conditionally use O_LARGEFILE in ovl_copy_up()
+Origin: https://git.kernel.org/cgit/linux/kernel/git/mszeredi/vfs.git/commit?id=bb00c2cd01c27e037900a28dcd01b00317a42fdb
+
+Open the lower file with O_LARGEFILE in ovl_copy_up() if the lower file
+is >= 4GiB in size.
+
+Reported-by: Ulrich Obergfell <uobergfe at redhat.com>
+Signed-off-by: David Howells <dhowells at redhat.com>
+Signed-off-by: Miklos Szeredi <miklos at szeredi.hu>
+Cc: <stable at vger.kernel.org> # v3.18+
+---
+ fs/overlayfs/copy_up.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
+index 84d693d..391c359 100644
+--- a/fs/overlayfs/copy_up.c
++++ b/fs/overlayfs/copy_up.c
+@@ -76,16 +76,19 @@ static int ovl_copy_up_data(struct path *old, struct path *new, loff_t len)
+ 	struct file *new_file;
+ 	loff_t old_pos = 0;
+ 	loff_t new_pos = 0;
+-	int error = 0;
++	int error = 0, o_flag = 0;
+ 
+ 	if (len == 0)
+ 		return 0;
+ 
+-	old_file = ovl_path_open(old, O_RDONLY);
++	if (i_size_read(d_inode(old->dentry)) > MAX_NON_LFS)
++		o_flag |= O_LARGEFILE;
++
++	old_file = ovl_path_open(old, o_flag | O_RDONLY);
+ 	if (IS_ERR(old_file))
+ 		return PTR_ERR(old_file);
+ 
+-	new_file = ovl_path_open(new, O_WRONLY);
++	new_file = ovl_path_open(new, o_flag | O_WRONLY);
+ 	if (IS_ERR(new_file)) {
+ 		error = PTR_ERR(new_file);
+ 		goto out_fput;
diff --git a/debian/patches/series b/debian/patches/series
index f9a58ae..549116c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -99,3 +99,4 @@ bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch
 bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
 bugfix/all/sctp-fix-race-on-protocol-netns-initialization.patch
 bugfix/mips/mips-pgtable-bits.h-correct-_page_global_shift-build.patch
+bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list