Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 391624 Details for
Bug 532514
net-fs/nfs-utils-1.3.0-r1: add support for building against sys-libs/musl
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
0004-nfsexport-talk-to-kernel-using-file-descriptors-inst.patch
0004-nfsexport-talk-to-kernel-using-file-descriptors-inst.patch (text/plain), 3.72 KB, created by
DaggyStyle
on 2014-12-13 21:49:02 UTC
(
hide
)
Description:
0004-nfsexport-talk-to-kernel-using-file-descriptors-inst.patch
Filename:
MIME Type:
Creator:
DaggyStyle
Created:
2014-12-13 21:49:02 UTC
Size:
3.72 KB
patch
obsolete
>From 9be231f2dde111d4841549140c7fd7aa2c6f3b9e Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> >Date: Thu, 2 Oct 2014 16:17:30 +0300 >Subject: [PATCH v2 4/5] nfsexport: talk to kernel using file descriptors > instead of FILE >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >Signed-off-by: Timo Teräs <timo.teras@iki.fi> >--- > support/nfs/nfsexport.c | 77 ++++++++++++++++++++++++++++--------------------- > 1 file changed, 44 insertions(+), 33 deletions(-) > >diff --git a/support/nfs/nfsexport.c b/support/nfs/nfsexport.c >index f129fd2..afd7c90 100644 >--- a/support/nfs/nfsexport.c >+++ b/support/nfs/nfsexport.c >@@ -18,6 +18,7 @@ > #include <fcntl.h> > > #include "nfslib.h" >+#include "misc.h" > > /* if /proc/net/rpc/... exists, then > * write to it, as that interface is more stable. >@@ -32,62 +33,72 @@ > static int > exp_unexp(struct nfsctl_export *exp, int export) > { >- FILE *f; >+ char buf[RPC_CHAN_BUF_SIZE], *bp; > struct stat stb; > __u32 fsid; > char fsidstr[8]; > __u16 dev; > __u32 inode; >- int err; >+ int err = 0, f, blen; > >+ f = open("/proc/net/rpc/nfsd.export/channel", O_WRONLY); >+ if (f < 0) return -1; > >- f = fopen("/proc/net/rpc/nfsd.export/channel", "w"); >- if (f == NULL) return -1; >- qword_print(f, exp->ex_client); >- qword_print(f, exp->ex_path); >+ bp = buf; blen = sizeof(buf); >+ qword_add(&bp, &blen, exp->ex_client); >+ qword_add(&bp, &blen, exp->ex_path); > if (export) { >- qword_printint(f, 0x7fffffff); >- qword_printint(f, exp->ex_flags); >- qword_printint(f, exp->ex_anon_uid); >- qword_printint(f, exp->ex_anon_gid); >- qword_printint(f, exp->ex_dev); >+ qword_addint(&bp, &blen, 0x7fffffff); >+ qword_addint(&bp, &blen, exp->ex_flags); >+ qword_addint(&bp, &blen, exp->ex_anon_uid); >+ qword_addint(&bp, &blen, exp->ex_anon_gid); >+ qword_addint(&bp, &blen, exp->ex_dev); > } else >- qword_printint(f, 1); >- >- err = qword_eol(f); >- fclose(f); >+ qword_addint(&bp, &blen, 1); >+ qword_addeol(&bp, &blen); >+ if (blen <= 0 || write(f, buf, bp - buf) != bp - buf) >+ err = -1; >+ close(f); > > if (stat(exp->ex_path, &stb) != 0) > return -1; >- f = fopen("/proc/net/rpc/nfsd.fh/channel", "w"); >- if (f==NULL) return -1; >+ >+ f = open("/proc/net/rpc/nfsd.fh/channel", O_WRONLY); >+ if (f < 0) return -1; > if (exp->ex_flags & NFSEXP_FSID) { >- qword_print(f,exp->ex_client); >- qword_printint(f,1); >+ bp = buf; blen = sizeof(buf); >+ qword_add(&bp, &blen, exp->ex_client); >+ qword_addint(&bp, &blen, 1); > fsid = exp->ex_dev; >- qword_printhex(f, (char*)&fsid, 4); >+ qword_addhex(&bp, &blen, (char*)&fsid, 4); > if (export) { >- qword_printint(f, 0x7fffffff); >- qword_print(f, exp->ex_path); >+ qword_addint(&bp, &blen, 0x7fffffff); >+ qword_add(&bp, &blen, exp->ex_path); > } else >- qword_printint(f, 1); >- >- err = qword_eol(f) || err; >+ qword_addint(&bp, &blen, 1); >+ qword_addeol(&bp, &blen); >+ if (blen <= 0 || write(f, buf, bp - buf) != bp - buf) >+ err = -1; > } >- qword_print(f,exp->ex_client); >- qword_printint(f,0); >+ >+ bp = buf; blen = sizeof(buf); >+ qword_add(&bp, &blen, exp->ex_client); >+ qword_addint(&bp, &blen, 0); > dev = htons(major(stb.st_dev)); memcpy(fsidstr, &dev, 2); > dev = htons(minor(stb.st_dev)); memcpy(fsidstr+2, &dev, 2); > inode = stb.st_ino; memcpy(fsidstr+4, &inode, 4); > >- qword_printhex(f, fsidstr, 8); >+ qword_addhex(&bp, &blen, fsidstr, 8); > if (export) { >- qword_printint(f, 0x7fffffff); >- qword_print(f, exp->ex_path); >+ qword_addint(&bp, &blen, 0x7fffffff); >+ qword_add(&bp, &blen, exp->ex_path); > } else >- qword_printint(f, 1); >- err = qword_eol(f) || err; >- fclose(f); >+ qword_addint(&bp, &blen, 1); >+ qword_addeol(&bp, &blen); >+ if (blen <= 0 || write(f, buf, bp - buf) != bp - buf) >+ err = -1; >+ close(f); >+ > return err; > } > >-- >2.1.2 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 532514
:
391610
|
391612
|
391614
|
391616
|
391618
|
391620
|
391622
| 391624 |
391626
|
391628
|
391630
|
391632
|
391634
|
391636
|
391638
|
391640
|
391642