Linux 3.3-rc4-git3 (upstream 45196cee28a5bcfb6ddbe2bffa4270cbed66ae4b)
This commit is contained in:
parent
728b14e247
commit
e1b88851aa
11
kernel.spec
11
kernel.spec
@ -54,7 +54,7 @@ Summary: The Linux kernel
|
|||||||
# For non-released -rc kernels, this will be appended after the rcX and
|
# For non-released -rc kernels, this will be appended after the rcX and
|
||||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||||
#
|
#
|
||||||
%global baserelease 2
|
%global baserelease 1
|
||||||
%global fedora_build %{baserelease}
|
%global fedora_build %{baserelease}
|
||||||
|
|
||||||
# base_sublevel is the kernel version we're starting with and patching
|
# base_sublevel is the kernel version we're starting with and patching
|
||||||
@ -87,7 +87,7 @@ Summary: The Linux kernel
|
|||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 4
|
%define rcrev 4
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 2
|
%define gitrev 3
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%define rpmversion 3.%{upstream_sublevel}.0
|
%define rpmversion 3.%{upstream_sublevel}.0
|
||||||
%endif
|
%endif
|
||||||
@ -738,8 +738,6 @@ Patch14000: hibernate-freeze-filesystems.patch
|
|||||||
|
|
||||||
Patch14010: lis3-improve-handling-of-null-rate.patch
|
Patch14010: lis3-improve-handling-of-null-rate.patch
|
||||||
|
|
||||||
Patch14020: nfs-oops-getacl.patch
|
|
||||||
|
|
||||||
Patch20000: utrace.patch
|
Patch20000: utrace.patch
|
||||||
|
|
||||||
# Flattened devicetree support
|
# Flattened devicetree support
|
||||||
@ -1464,8 +1462,6 @@ ApplyPatch hibernate-freeze-filesystems.patch
|
|||||||
|
|
||||||
ApplyPatch lis3-improve-handling-of-null-rate.patch
|
ApplyPatch lis3-improve-handling-of-null-rate.patch
|
||||||
|
|
||||||
ApplyPatch nfs-oops-getacl.patch
|
|
||||||
|
|
||||||
# utrace.
|
# utrace.
|
||||||
ApplyPatch utrace.patch
|
ApplyPatch utrace.patch
|
||||||
|
|
||||||
@ -2370,6 +2366,9 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Feb 22 2012 Josh Boyer <jwboyer@redhat.com> - 3.3.0-0.rc4.git3.1
|
||||||
|
- Linux 3.3-rc4-git3 (upstream 45196cee28a5bcfb6ddbe2bffa4270cbed66ae4b)
|
||||||
|
|
||||||
* Wed Feb 22 2012 Josh Boyer <jwboyer@redhat.com> - 3.3.0-0.rc4.git2.1
|
* Wed Feb 22 2012 Josh Boyer <jwboyer@redhat.com> - 3.3.0-0.rc4.git2.1
|
||||||
- Linux 3.3-rc4-git2 (upstream 719741d9986572d64b47c35c09f5e7bb8d389400)
|
- Linux 3.3-rc4-git2 (upstream 719741d9986572d64b47c35c09f5e7bb8d389400)
|
||||||
|
|
||||||
|
@ -1,96 +0,0 @@
|
|||||||
From 331818f1c468a24e581aedcbe52af799366a9dfe Mon Sep 17 00:00:00 2001
|
|
||||||
From: Trond Myklebust <Trond.Myklebust@netapp.com>
|
|
||||||
Date: Fri, 3 Feb 2012 18:30:53 -0500
|
|
||||||
Subject: [PATCH] NFSv4: Fix an Oops in the NFSv4 getacl code
|
|
||||||
|
|
||||||
Commit bf118a342f10dafe44b14451a1392c3254629a1f (NFSv4: include bitmap
|
|
||||||
in nfsv4 get acl data) introduces the 'acl_scratch' page for the case
|
|
||||||
where we may need to decode multi-page data. However it fails to take
|
|
||||||
into account the fact that the variable may be NULL (for the case where
|
|
||||||
we're not doing multi-page decode), and it also attaches it to the
|
|
||||||
encoding xdr_stream rather than the decoding one.
|
|
||||||
|
|
||||||
The immediate result is an Oops in nfs4_xdr_enc_getacl due to the
|
|
||||||
call to page_address() with a NULL page pointer.
|
|
||||||
|
|
||||||
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
|
|
||||||
Cc: Andy Adamson <andros@netapp.com>
|
|
||||||
Cc: stable@vger.kernel.org
|
|
||||||
---
|
|
||||||
fs/nfs/nfs4proc.c | 8 ++++----
|
|
||||||
fs/nfs/nfs4xdr.c | 5 ++++-
|
|
||||||
include/linux/nfs_xdr.h | 2 +-
|
|
||||||
3 files changed, 9 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
|
|
||||||
index f0c849c..d202e04 100644
|
|
||||||
--- a/fs/nfs/nfs4proc.c
|
|
||||||
+++ b/fs/nfs/nfs4proc.c
|
|
||||||
@@ -3575,8 +3575,8 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
|
|
||||||
}
|
|
||||||
if (npages > 1) {
|
|
||||||
/* for decoding across pages */
|
|
||||||
- args.acl_scratch = alloc_page(GFP_KERNEL);
|
|
||||||
- if (!args.acl_scratch)
|
|
||||||
+ res.acl_scratch = alloc_page(GFP_KERNEL);
|
|
||||||
+ if (!res.acl_scratch)
|
|
||||||
goto out_free;
|
|
||||||
}
|
|
||||||
args.acl_len = npages * PAGE_SIZE;
|
|
||||||
@@ -3612,8 +3612,8 @@ out_free:
|
|
||||||
for (i = 0; i < npages; i++)
|
|
||||||
if (pages[i])
|
|
||||||
__free_page(pages[i]);
|
|
||||||
- if (args.acl_scratch)
|
|
||||||
- __free_page(args.acl_scratch);
|
|
||||||
+ if (res.acl_scratch)
|
|
||||||
+ __free_page(res.acl_scratch);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
|
|
||||||
index 95e92e4..33bd8d0 100644
|
|
||||||
--- a/fs/nfs/nfs4xdr.c
|
|
||||||
+++ b/fs/nfs/nfs4xdr.c
|
|
||||||
@@ -2522,7 +2522,6 @@ static void nfs4_xdr_enc_getacl(struct rpc_rqst *req, struct xdr_stream *xdr,
|
|
||||||
|
|
||||||
xdr_inline_pages(&req->rq_rcv_buf, replen << 2,
|
|
||||||
args->acl_pages, args->acl_pgbase, args->acl_len);
|
|
||||||
- xdr_set_scratch_buffer(xdr, page_address(args->acl_scratch), PAGE_SIZE);
|
|
||||||
|
|
||||||
encode_nops(&hdr);
|
|
||||||
}
|
|
||||||
@@ -6032,6 +6031,10 @@ nfs4_xdr_dec_getacl(struct rpc_rqst *rqstp, struct xdr_stream *xdr,
|
|
||||||
struct compound_hdr hdr;
|
|
||||||
int status;
|
|
||||||
|
|
||||||
+ if (res->acl_scratch != NULL) {
|
|
||||||
+ void *p = page_address(res->acl_scratch);
|
|
||||||
+ xdr_set_scratch_buffer(xdr, p, PAGE_SIZE);
|
|
||||||
+ }
|
|
||||||
status = decode_compound_hdr(xdr, &hdr);
|
|
||||||
if (status)
|
|
||||||
goto out;
|
|
||||||
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
|
|
||||||
index a764cef..d6ba9a1 100644
|
|
||||||
--- a/include/linux/nfs_xdr.h
|
|
||||||
+++ b/include/linux/nfs_xdr.h
|
|
||||||
@@ -614,7 +614,6 @@ struct nfs_getaclargs {
|
|
||||||
size_t acl_len;
|
|
||||||
unsigned int acl_pgbase;
|
|
||||||
struct page ** acl_pages;
|
|
||||||
- struct page * acl_scratch;
|
|
||||||
struct nfs4_sequence_args seq_args;
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -624,6 +623,7 @@ struct nfs_getaclres {
|
|
||||||
size_t acl_len;
|
|
||||||
size_t acl_data_offset;
|
|
||||||
int acl_flags;
|
|
||||||
+ struct page * acl_scratch;
|
|
||||||
struct nfs4_sequence_res seq_res;
|
|
||||||
};
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.4.1
|
|
||||||
|
|
2
sources
2
sources
@ -1,4 +1,4 @@
|
|||||||
364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz
|
364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz
|
||||||
35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz
|
35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz
|
||||||
02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2
|
02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2
|
||||||
b0d7ec50121d5baa3d36908d22cc6459 patch-3.3-rc4-git2.xz
|
257185c04d1aaf8324c3858558cb61d4 patch-3.3-rc4-git3.xz
|
||||||
|
Loading…
Reference in New Issue
Block a user