+ knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     knfsd: nfsd: mark rqstp to prevent use of sendfile in privacy case

has been added to the -mm tree.  Its filename is

     knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: knfsd: nfsd: mark rqstp to prevent use of sendfile in privacy case
From: J. Bruce Fields <bfields@xxxxxxxxxxxxxx>

Add a rq_sendfile_ok flag to svc_rqst which will be cleared in the privacy
case so that the wrapping code will get copies of the read data instead of
real page cache pages.  This makes life simpler when we encrypt the response.

Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxxxxxx>
Signed-off-by: Neil Brown <neilb@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 fs/nfsd/vfs.c              |    2 +-
 include/linux/sunrpc/svc.h |    4 +++-
 net/sunrpc/svc.c           |    2 ++
 3 files changed, 6 insertions(+), 2 deletions(-)

diff -puN fs/nfsd/vfs.c~knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case fs/nfsd/vfs.c
--- a/fs/nfsd/vfs.c~knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case
+++ a/fs/nfsd/vfs.c
@@ -837,7 +837,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st
 	if (ra && ra->p_set)
 		file->f_ra = ra->p_ra;
 
-	if (file->f_op->sendfile) {
+	if (file->f_op->sendfile && rqstp->rq_sendfile_ok) {
 		svc_pushback_unused_pages(rqstp);
 		err = file->f_op->sendfile(file, &offset, *count,
 						 nfsd_read_actor, rqstp);
diff -puN include/linux/sunrpc/svc.h~knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case include/linux/sunrpc/svc.h
--- a/include/linux/sunrpc/svc.h~knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case
+++ a/include/linux/sunrpc/svc.h
@@ -159,7 +159,9 @@ struct svc_rqst {
 						 * determine what device number
 						 * to report (real or virtual)
 						 */
-
+	int			rq_sendfile_ok; /* turned off in gss privacy
+						 * to prevent encrypting page
+						 * cache pages */
 	wait_queue_head_t	rq_wait;	/* synchronization */
 };
 
diff -puN net/sunrpc/svc.c~knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case net/sunrpc/svc.c
--- a/net/sunrpc/svc.c~knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case
+++ a/net/sunrpc/svc.c
@@ -281,6 +281,8 @@ svc_process(struct svc_serv *serv, struc
 	rqstp->rq_res.page_len = 0;
 	rqstp->rq_res.buflen = PAGE_SIZE;
 	rqstp->rq_res.tail[0].iov_len = 0;
+	/* Will be turned off only in gss privacy case: */
+	rqstp->rq_sendfile_ok = 1;
 	/* tcp needs a space for the record length... */
 	if (rqstp->rq_prot == IPPROTO_TCP)
 		svc_putu32(resv, 0);
_

Patches currently in -mm which might be from bfields@xxxxxxxxxxxxxx are

origin.patch
knfsd-nfsd4-fix-open_confirm-locking.patch
knfsd-nfsd-call-nfsd_setuser-on-fh_compose-fix-nfsd4-permissions-problem.patch
knfsd-nfsd4-remove-superfluous-grace-period-checks.patch
knfsd-nfsd-fix-misplaced-fh_unlock-in-nfsd_link.patch
knfsd-svcrpc-gss-simplify-rsc_parse.patch
knfsd-nfsd4-fix-some-open-argument-tests.patch
knfsd-nfsd4-fix-open-flag-passing.patch
knfsd-svcrpc-simplify-nfsd-rpcsec_gss-integrity-code.patch
knfsd-nfsd-mark-rqstp-to-prevent-use-of-sendfile-in-privacy-case.patch
knfsd-svcrpc-gss-server-side-implementation-of-rpcsec_gss-privacy.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux