diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-12-02 13:05:42 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-12-02 13:05:42 +0000 |
commit | 98860832862cef20612fd5b10b324f5eba1b4015 (patch) | |
tree | 8fabd2b174a6ffe8afb37c485d8cd5bca906563d | |
parent | 09f69895a11ea4b8eb83c65cc9de22502d7d41a8 (diff) | |
parent | 4deedc8c9617c76c1e08a5265614b205754926c4 (diff) | |
download | illumos-joyent-98860832862cef20612fd5b10b324f5eba1b4015.tar.gz |
[illumos-gate merge]
commit 4deedc8c9617c76c1e08a5265614b205754926c4
12041 tem: x86 needs to use tems.ts_color_map() for 8-bit colors
commit 2f572942f3e92c5f77d0b5d0778be90fa16681c1
12040 loader: vbe_print_mode() is missing newline
commit e15e891852f98a4fc7afb32f0999b5bc38f7d1f8
12005 update to Intel microcode-20191115
commit f7db5903887928b2b43995473632ef63d130bbd4
2988 nfssrv: need ability to go to submounts for v3 and v2 protocols
commit 19687f06a4a23ca82910eccd0f898c90ecd3cf62
12017 Assertion failure in kstat_waitq_to_runq from blkdev
37 files changed, 312 insertions, 59 deletions
@@ -2248,6 +2248,7 @@ f platform/i86pc/ucode/GenuineIntel/00040671-02 0444 root sys h platform/i86pc/ucode/GenuineIntel/00040671-20=platform/i86pc/ucode/GenuineIntel/00040671-02 f platform/i86pc/ucode/GenuineIntel/000406C3-01 0444 root sys f platform/i86pc/ucode/GenuineIntel/000406C4-01 0444 root sys +f platform/i86pc/ucode/GenuineIntel/000406D8-01 0444 root sys f platform/i86pc/ucode/GenuineIntel/000406E3-40 0444 root sys h platform/i86pc/ucode/GenuineIntel/000406E3-80=platform/i86pc/ucode/GenuineIntel/000406E3-40 f platform/i86pc/ucode/GenuineIntel/000406F1-01 0444 root sys @@ -2257,12 +2258,24 @@ h platform/i86pc/ucode/GenuineIntel/000406F1-08=platform/i86pc/ucode/GenuineInte h platform/i86pc/ucode/GenuineIntel/000406F1-20=platform/i86pc/ucode/GenuineIntel/000406F1-01 h platform/i86pc/ucode/GenuineIntel/000406F1-40=platform/i86pc/ucode/GenuineIntel/000406F1-01 h platform/i86pc/ucode/GenuineIntel/000406F1-80=platform/i86pc/ucode/GenuineIntel/000406F1-01 +f platform/i86pc/ucode/GenuineIntel/00050653-01 0444 root sys +h platform/i86pc/ucode/GenuineIntel/00050653-02=platform/i86pc/ucode/GenuineIntel/00050653-01 +h platform/i86pc/ucode/GenuineIntel/00050653-04=platform/i86pc/ucode/GenuineIntel/00050653-01 +h platform/i86pc/ucode/GenuineIntel/00050653-10=platform/i86pc/ucode/GenuineIntel/00050653-01 +h platform/i86pc/ucode/GenuineIntel/00050653-80=platform/i86pc/ucode/GenuineIntel/00050653-01 f platform/i86pc/ucode/GenuineIntel/00050654-01 0444 root sys h platform/i86pc/ucode/GenuineIntel/00050654-02=platform/i86pc/ucode/GenuineIntel/00050654-01 h platform/i86pc/ucode/GenuineIntel/00050654-04=platform/i86pc/ucode/GenuineIntel/00050654-01 h platform/i86pc/ucode/GenuineIntel/00050654-10=platform/i86pc/ucode/GenuineIntel/00050654-01 h platform/i86pc/ucode/GenuineIntel/00050654-20=platform/i86pc/ucode/GenuineIntel/00050654-01 h platform/i86pc/ucode/GenuineIntel/00050654-80=platform/i86pc/ucode/GenuineIntel/00050654-01 +f platform/i86pc/ucode/GenuineIntel/00050656-01 0444 root sys +h platform/i86pc/ucode/GenuineIntel/00050656-02=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-04=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-08=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-10=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-20=platform/i86pc/ucode/GenuineIntel/00050656-01 +h platform/i86pc/ucode/GenuineIntel/00050656-80=platform/i86pc/ucode/GenuineIntel/00050656-01 f platform/i86pc/ucode/GenuineIntel/00050657-01 0444 root sys h platform/i86pc/ucode/GenuineIntel/00050657-02=platform/i86pc/ucode/GenuineIntel/00050657-01 h platform/i86pc/ucode/GenuineIntel/00050657-04=platform/i86pc/ucode/GenuineIntel/00050657-01 @@ -2272,6 +2285,7 @@ h platform/i86pc/ucode/GenuineIntel/00050657-20=platform/i86pc/ucode/GenuineInte h platform/i86pc/ucode/GenuineIntel/00050657-80=platform/i86pc/ucode/GenuineIntel/00050657-01 f platform/i86pc/ucode/GenuineIntel/00050662-10 0444 root sys f platform/i86pc/ucode/GenuineIntel/00050663-10 0444 root sys +f platform/i86pc/ucode/GenuineIntel/00060663-80 0444 root sys f platform/i86pc/ucode/GenuineIntel/00050664-10 0444 root sys f platform/i86pc/ucode/GenuineIntel/00050665-10 0444 root sys f platform/i86pc/ucode/GenuineIntel/000506C2-01 0444 root sys @@ -2285,6 +2299,8 @@ h platform/i86pc/ucode/GenuineIntel/000506E3-10=platform/i86pc/ucode/GenuineInte h platform/i86pc/ucode/GenuineIntel/000506E3-20=platform/i86pc/ucode/GenuineIntel/000506E3-02 f platform/i86pc/ucode/GenuineIntel/000506F1-01 0444 root sys f platform/i86pc/ucode/GenuineIntel/000706A1-01 0444 root sys +f platform/i86pc/ucode/GenuineIntel/000706A8-01 0444 root sys +f platform/i86pc/ucode/GenuineIntel/000706E5-80 0444 root sys f platform/i86pc/ucode/GenuineIntel/000806E9-10 0444 root sys f platform/i86pc/ucode/GenuineIntel/000806E9-40 0444 root sys h platform/i86pc/ucode/GenuineIntel/000806E9-80=platform/i86pc/ucode/GenuineIntel/000806E9-40 @@ -2306,6 +2322,7 @@ f platform/i86pc/ucode/GenuineIntel/000906EC-02 0444 root sys h platform/i86pc/ucode/GenuineIntel/000906EC-20=platform/i86pc/ucode/GenuineIntel/000906EC-02 f platform/i86pc/ucode/GenuineIntel/000906ED-02 0444 root sys h platform/i86pc/ucode/GenuineIntel/000906ED-20=platform/i86pc/ucode/GenuineIntel/000906ED-02 +f platform/i86pc/ucode/GenuineIntel/000A0660-80 0444 root sys d proc 0755 root root d root 0755 root root f root/.bash_profile 0644 root root diff --git a/usr/src/boot/sys/boot/i386/libi386/vbe.c b/usr/src/boot/sys/boot/i386/libi386/vbe.c index 83876e1a66..ef8770f3c5 100644 --- a/usr/src/boot/sys/boot/i386/libi386/vbe.c +++ b/usr/src/boot/sys/boot/i386/libi386/vbe.c @@ -653,19 +653,19 @@ vbe_print_mode(void) vbe_dump_mode(mode, vbe_mode); printf("\n"); - printf("%ux%ux%u, stride=%u", + printf("%ux%ux%u, stride=%u\n", gfx_fb.framebuffer_common.framebuffer_width, gfx_fb.framebuffer_common.framebuffer_height, gfx_fb.framebuffer_common.framebuffer_bpp, (gfx_fb.framebuffer_common.framebuffer_pitch << 3) / gfx_fb.framebuffer_common.framebuffer_bpp); - printf("\n frame buffer: address=%jx, size=%jx", + printf(" frame buffer: address=%jx, size=%jx\n", (uintmax_t)gfx_fb.framebuffer_common.framebuffer_addr, (uintmax_t)gfx_fb.framebuffer_common.framebuffer_height * gfx_fb.framebuffer_common.framebuffer_pitch); if (vbe_mode->MemoryModel == 0x6) { - printf("\n color mask: R=%08x, G=%08x, B=%08x\n", + printf(" color mask: R=%08x, G=%08x, B=%08x\n", ((1 << gfx_fb.u.fb2.framebuffer_red_mask_size) - 1) << gfx_fb.u.fb2.framebuffer_red_field_position, ((1 << gfx_fb.u.fb2.framebuffer_green_mask_size) - 1) << diff --git a/usr/src/cmd/fs.d/nfs/lib/sharetab.h b/usr/src/cmd/fs.d/nfs/lib/sharetab.h index b51c5e7d85..da22aed881 100644 --- a/usr/src/cmd/fs.d/nfs/lib/sharetab.h +++ b/usr/src/cmd/fs.d/nfs/lib/sharetab.h @@ -28,7 +28,7 @@ */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ +/* All Rights Reserved */ /* * Portions of this source code were derived from Berkeley 4.3 BSD @@ -65,6 +65,7 @@ extern "C" { #define SHOPT_NOACLFAB "noaclfab" #define SHOPT_UIDMAP "uidmap" #define SHOPT_GIDMAP "gidmap" +#define SHOPT_NOHIDE "nohide" /* XXX The following are added for testing volatile fh's purposes only */ #ifdef VOLATILE_FH_TEST diff --git a/usr/src/data/ucode/Makefile.links b/usr/src/data/ucode/Makefile.links index df9318921e..258c8958fc 100644 --- a/usr/src/data/ucode/Makefile.links +++ b/usr/src/data/ucode/Makefile.links @@ -1,4 +1,4 @@ -INTEL_LINKS = 00000F32-04 00000F32-08 00000F33-04 00000F33-08 00000F34-04 00000F34-08 00000F34-10 00000F41-04 00000F41-08 00000F41-10 00000F41-20 00000F41-80 00000F43-04 00000F43-08 00000F43-10 00000F43-80 00000F44-04 00000F44-08 00000F44-10 00000F44-80 00000F47-04 00000F47-08 00000F47-10 00000F47-80 00000F48-08 00000F48-10 00000F48-40 00000F49-04 00000F49-08 00000F49-10 00000F49-20 00000F49-80 00000F4A-08 00000F4A-10 00000F4A-40 00000F64-10 00000F64-20 00000F68-20 0001067A-10 0001067A-40 0001067A-80 000106A4-02 000106A5-02 000106E5-02 000106E5-10 00020652-10 00020655-10 00020655-80 000206A7-10 000206C2-02 000206D6-04 000206D6-08 000206D6-20 000206D6-40 000206D7-04 000206D7-08 000206D7-20 000206D7-40 000206F2-04 00030678-08 00030679-02 00030679-04 00030679-08 000306A9-10 000306C3-10 000306C3-20 000306D4-80 000306E4-04 000306E4-08 000306E4-20 000306E4-40 000306E4-80 000306E6-04 000306E6-08 000306E6-20 000306E6-40 000306E6-80 000306E7-04 000306E7-08 000306E7-20 000306E7-40 000306E7-80 000306F2-02 000306F2-04 000306F2-08 000306F2-20 000306F2-40 00040651-10 00040651-20 00040651-40 00040661-10 00040661-20 00040671-20 000406E3-80 000406F1-02 000406F1-04 000406F1-08 000406F1-20 000406F1-40 000406F1-80 00050654-02 00050654-04 00050654-10 00050654-20 00050654-80 00050657-02 00050657-04 00050657-08 00050657-10 00050657-20 00050657-80 000506C9-02 000506CA-02 000506E3-04 000506E3-10 000506E3-20 000806E9-80 000806EA-80 000806EB-40 000806EB-80 000806EC-10 000806EC-80 000906E9-08 000906E9-20 000906EA-20 000906EC-20 000906ED-20 +INTEL_LINKS = 00000F32-04 00000F32-08 00000F33-04 00000F33-08 00000F34-04 00000F34-08 00000F34-10 00000F41-04 00000F41-08 00000F41-10 00000F41-20 00000F41-80 00000F43-04 00000F43-08 00000F43-10 00000F43-80 00000F44-04 00000F44-08 00000F44-10 00000F44-80 00000F47-04 00000F47-08 00000F47-10 00000F47-80 00000F48-08 00000F48-10 00000F48-40 00000F49-04 00000F49-08 00000F49-10 00000F49-20 00000F49-80 00000F4A-08 00000F4A-10 00000F4A-40 00000F64-10 00000F64-20 00000F68-20 0001067A-10 0001067A-40 0001067A-80 000106A4-02 000106A5-02 000106E5-02 000106E5-10 00020652-10 00020655-10 00020655-80 000206A7-10 000206C2-02 000206D6-04 000206D6-08 000206D6-20 000206D6-40 000206D7-04 000206D7-08 000206D7-20 000206D7-40 000206F2-04 00030678-08 00030679-02 00030679-04 00030679-08 000306A9-10 000306C3-10 000306C3-20 000306D4-80 000306E4-04 000306E4-08 000306E4-20 000306E4-40 000306E4-80 000306E6-04 000306E6-08 000306E6-20 000306E6-40 000306E6-80 000306E7-04 000306E7-08 000306E7-20 000306E7-40 000306E7-80 000306F2-02 000306F2-04 000306F2-08 000306F2-20 000306F2-40 00040651-10 00040651-20 00040651-40 00040661-10 00040661-20 00040671-20 000406E3-80 000406F1-02 000406F1-04 000406F1-08 000406F1-20 000406F1-40 000406F1-80 00050653-02 00050653-04 00050653-10 00050653-80 00050654-02 00050654-04 00050654-10 00050654-20 00050654-80 00050656-02 00050656-04 00050656-08 00050656-10 00050656-20 00050656-80 00050657-02 00050657-04 00050657-08 00050657-10 00050657-20 00050657-80 000506C9-02 000506CA-02 000506E3-04 000506E3-10 000506E3-20 000806E9-80 000806EA-80 000806EB-40 000806EB-80 000806EC-10 000806EC-80 000906E9-08 000906E9-20 000906EA-20 000906EC-20 000906ED-20 $(ROOTINTELDIR)/00000F32-04: $(ROOTINTELDIR)/00000F32-01 $(RM) $@; $(LN) $^ $@ @@ -300,6 +300,18 @@ $(ROOTINTELDIR)/000406F1-40: $(ROOTINTELDIR)/000406F1-01 $(ROOTINTELDIR)/000406F1-80: $(ROOTINTELDIR)/000406F1-01 $(RM) $@; $(LN) $^ $@ +$(ROOTINTELDIR)/00050653-02: $(ROOTINTELDIR)/00050653-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050653-04: $(ROOTINTELDIR)/00050653-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050653-10: $(ROOTINTELDIR)/00050653-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050653-80: $(ROOTINTELDIR)/00050653-01 + $(RM) $@; $(LN) $^ $@ + $(ROOTINTELDIR)/00050654-02: $(ROOTINTELDIR)/00050654-01 $(RM) $@; $(LN) $^ $@ @@ -315,6 +327,24 @@ $(ROOTINTELDIR)/00050654-20: $(ROOTINTELDIR)/00050654-01 $(ROOTINTELDIR)/00050654-80: $(ROOTINTELDIR)/00050654-01 $(RM) $@; $(LN) $^ $@ +$(ROOTINTELDIR)/00050656-02: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-04: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-08: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-10: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-20: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + +$(ROOTINTELDIR)/00050656-80: $(ROOTINTELDIR)/00050656-01 + $(RM) $@; $(LN) $^ $@ + $(ROOTINTELDIR)/00050657-02: $(ROOTINTELDIR)/00050657-01 $(RM) $@; $(LN) $^ $@ diff --git a/usr/src/data/ucode/README.ucode b/usr/src/data/ucode/README.ucode index 2968fc5ec5..fa2ea2269d 100644 --- a/usr/src/data/ucode/README.ucode +++ b/usr/src/data/ucode/README.ucode @@ -38,4 +38,4 @@ of updating the manifest as necessary. Be careful about new files. AMD: Updated in March 2012 as part of illumos#2546. Exact revision unknown. -Intel: Linux 20190918 release +Intel: Linux 20191115 release diff --git a/usr/src/data/ucode/intel/000406D8-01 b/usr/src/data/ucode/intel/000406D8-01 Binary files differnew file mode 100644 index 0000000000..7c66bec294 --- /dev/null +++ b/usr/src/data/ucode/intel/000406D8-01 diff --git a/usr/src/data/ucode/intel/000406E3-40 b/usr/src/data/ucode/intel/000406E3-40 Binary files differindex 8f7afa6efd..1fabcf801d 100644 --- a/usr/src/data/ucode/intel/000406E3-40 +++ b/usr/src/data/ucode/intel/000406E3-40 diff --git a/usr/src/data/ucode/intel/00050653-01 b/usr/src/data/ucode/intel/00050653-01 Binary files differnew file mode 100644 index 0000000000..9777db046e --- /dev/null +++ b/usr/src/data/ucode/intel/00050653-01 diff --git a/usr/src/data/ucode/intel/00050654-01 b/usr/src/data/ucode/intel/00050654-01 Binary files differindex 754d08173e..1dfee4c1db 100644 --- a/usr/src/data/ucode/intel/00050654-01 +++ b/usr/src/data/ucode/intel/00050654-01 diff --git a/usr/src/data/ucode/intel/00050656-01 b/usr/src/data/ucode/intel/00050656-01 Binary files differnew file mode 100644 index 0000000000..644fbd0f77 --- /dev/null +++ b/usr/src/data/ucode/intel/00050656-01 diff --git a/usr/src/data/ucode/intel/00050657-01 b/usr/src/data/ucode/intel/00050657-01 Binary files differindex b5e3f112a1..b2c7588119 100644 --- a/usr/src/data/ucode/intel/00050657-01 +++ b/usr/src/data/ucode/intel/00050657-01 diff --git a/usr/src/data/ucode/intel/000506E3-02 b/usr/src/data/ucode/intel/000506E3-02 Binary files differindex 3dfc610744..a3119d52f3 100644 --- a/usr/src/data/ucode/intel/000506E3-02 +++ b/usr/src/data/ucode/intel/000506E3-02 diff --git a/usr/src/data/ucode/intel/00060663-80 b/usr/src/data/ucode/intel/00060663-80 Binary files differnew file mode 100644 index 0000000000..22e36d2b65 --- /dev/null +++ b/usr/src/data/ucode/intel/00060663-80 diff --git a/usr/src/data/ucode/intel/000706A1-01 b/usr/src/data/ucode/intel/000706A1-01 Binary files differindex 43a86f2be8..c9fcc07cbd 100644 --- a/usr/src/data/ucode/intel/000706A1-01 +++ b/usr/src/data/ucode/intel/000706A1-01 diff --git a/usr/src/data/ucode/intel/000706A8-01 b/usr/src/data/ucode/intel/000706A8-01 Binary files differnew file mode 100644 index 0000000000..7468c9f12a --- /dev/null +++ b/usr/src/data/ucode/intel/000706A8-01 diff --git a/usr/src/data/ucode/intel/000706E5-80 b/usr/src/data/ucode/intel/000706E5-80 Binary files differnew file mode 100644 index 0000000000..1339fd29ed --- /dev/null +++ b/usr/src/data/ucode/intel/000706E5-80 diff --git a/usr/src/data/ucode/intel/000806E9-10 b/usr/src/data/ucode/intel/000806E9-10 Binary files differindex c7fe3a961e..3bb022f42a 100644 --- a/usr/src/data/ucode/intel/000806E9-10 +++ b/usr/src/data/ucode/intel/000806E9-10 diff --git a/usr/src/data/ucode/intel/000806E9-40 b/usr/src/data/ucode/intel/000806E9-40 Binary files differindex 49aea22aee..f85a30551e 100644 --- a/usr/src/data/ucode/intel/000806E9-40 +++ b/usr/src/data/ucode/intel/000806E9-40 diff --git a/usr/src/data/ucode/intel/000806EA-40 b/usr/src/data/ucode/intel/000806EA-40 Binary files differindex 20ff87c8c8..3b4ef6b354 100644 --- a/usr/src/data/ucode/intel/000806EA-40 +++ b/usr/src/data/ucode/intel/000806EA-40 diff --git a/usr/src/data/ucode/intel/000806EB-10 b/usr/src/data/ucode/intel/000806EB-10 Binary files differindex 9eae11d13c..5fb3f554a8 100644 --- a/usr/src/data/ucode/intel/000806EB-10 +++ b/usr/src/data/ucode/intel/000806EB-10 diff --git a/usr/src/data/ucode/intel/000806EC-04 b/usr/src/data/ucode/intel/000806EC-04 Binary files differindex b0458f3abc..624e73e5d8 100644 --- a/usr/src/data/ucode/intel/000806EC-04 +++ b/usr/src/data/ucode/intel/000806EC-04 diff --git a/usr/src/data/ucode/intel/000906E9-02 b/usr/src/data/ucode/intel/000906E9-02 Binary files differindex 51202b3fca..26e0452836 100644 --- a/usr/src/data/ucode/intel/000906E9-02 +++ b/usr/src/data/ucode/intel/000906E9-02 diff --git a/usr/src/data/ucode/intel/000906EA-02 b/usr/src/data/ucode/intel/000906EA-02 Binary files differindex 68aafca7ed..efec04d507 100644 --- a/usr/src/data/ucode/intel/000906EA-02 +++ b/usr/src/data/ucode/intel/000906EA-02 diff --git a/usr/src/data/ucode/intel/000906EB-02 b/usr/src/data/ucode/intel/000906EB-02 Binary files differindex 17fddc8670..f11c38e307 100644 --- a/usr/src/data/ucode/intel/000906EB-02 +++ b/usr/src/data/ucode/intel/000906EB-02 diff --git a/usr/src/data/ucode/intel/000906EC-02 b/usr/src/data/ucode/intel/000906EC-02 Binary files differindex 5feee15c02..c6e61a513c 100644 --- a/usr/src/data/ucode/intel/000906EC-02 +++ b/usr/src/data/ucode/intel/000906EC-02 diff --git a/usr/src/data/ucode/intel/000906ED-02 b/usr/src/data/ucode/intel/000906ED-02 Binary files differindex b438fbddcb..5f1e794cb2 100644 --- a/usr/src/data/ucode/intel/000906ED-02 +++ b/usr/src/data/ucode/intel/000906ED-02 diff --git a/usr/src/data/ucode/intel/000A0660-80 b/usr/src/data/ucode/intel/000A0660-80 Binary files differnew file mode 100644 index 0000000000..0ab1930343 --- /dev/null +++ b/usr/src/data/ucode/intel/000A0660-80 diff --git a/usr/src/lib/libshare/nfs/libshare_nfs.c b/usr/src/lib/libshare/nfs/libshare_nfs.c index f8f8ff0710..d5fc9fbbfc 100644 --- a/usr/src/lib/libshare/nfs/libshare_nfs.c +++ b/usr/src/lib/libshare/nfs/libshare_nfs.c @@ -175,8 +175,10 @@ struct option_defs optdefs[] = { {SHOPT_UIDMAP, OPT_UIDMAP, OPT_TYPE_MAPPING}, #define OPT_GIDMAP 19 {SHOPT_GIDMAP, OPT_GIDMAP, OPT_TYPE_MAPPING}, +#define OPT_NOHIDE 20 + {SHOPT_NOHIDE, OPT_NOHIDE, OPT_TYPE_BOOLEAN}, #ifdef VOLATILE_FH_TEST /* XXX added for testing volatile fh's only */ -#define OPT_VOLFH 20 +#define OPT_VOLFH 21 {SHOPT_VOLFH, OPT_VOLFH}, #endif /* VOLATILE_FH_TEST */ NULL @@ -1028,6 +1030,14 @@ fill_export_from_optionset(struct exportdata *export, sa_optionset_t optionset) else export->ex_flags &= ~EX_NOACLFAB; break; + case OPT_NOHIDE: + if (value != NULL && (strcasecmp(value, "true") == 0 || + strcmp(value, "1") == 0)) + export->ex_flags |= EX_NOHIDE; + else + export->ex_flags &= ~EX_NOHIDE; + + break; default: /* have a syntactic error */ (void) printf(dgettext(TEXT_DOMAIN, diff --git a/usr/src/lib/libshare/nfs/libshare_nfs.h b/usr/src/lib/libshare/nfs/libshare_nfs.h index ac608f2b52..4a0660407e 100644 --- a/usr/src/lib/libshare/nfs/libshare_nfs.h +++ b/usr/src/lib/libshare/nfs/libshare_nfs.h @@ -56,6 +56,7 @@ extern "C" { #define SHOPT_NOACLFAB "noaclfab" #define SHOPT_UIDMAP "uidmap" #define SHOPT_GIDMAP "gidmap" +#define SHOPT_NOHIDE "nohide" /* * defined options types. These should be in a file rather than diff --git a/usr/src/man/man1m/share_nfs.1m b/usr/src/man/man1m/share_nfs.1m index c79b6b9438..8904de8ba1 100644 --- a/usr/src/man/man1m/share_nfs.1m +++ b/usr/src/man/man1m/share_nfs.1m @@ -172,6 +172,25 @@ is specified, the default values associated with the global tag in are used. Support of NFS server logging is only available for NFS Version 2 and Version 3 requests. +.It Sy nohide +By default, if server exports two filesystems, one of which is mounted as a +child of the other, NFS Version 2 and Version 3 clients must mount both +filesystems explicitly in order to access them. +If a client only mounts the parent, it will see an empty directory at the +location where the other filesystem is mounted. +.Pp +Setting the +.Sy nohide +option on a filesystem causes it to no longer be hidden in this manner, and the +client will be able to move from the parent filesystem to this one without +noticing the change. +However, some NFS clients or applications may not function correctly when +this option is used. +In particular, files on different underlying filesystems may appear to have +the same inode numbers. +The +.Sy nohide +option only applies to NFS Version 2 and Version 3 requests. .It Sy noaclfab By default, the NFS server will fabricate POSIX-draft style ACLs in response to ACL requests from NFS Version 2 or Version 3 clients accessing shared @@ -786,3 +805,14 @@ use of does not work as it does with NFS Version 2 and Version 3 and the client receives an error when attempting to mount .Pa /export/foo . +.Pp +The +.Sy nohide +option violates RFC 1094, +.%T "Network File System Protocol Specification" +and RFC 1813, +.%T "NFS: Network File System Version 3 Protocol Specification" +.Pp +The +.Sy nohide +option is provided for compatibility with Linux NFS. diff --git a/usr/src/pkg/manifests/system-kernel-platform.mf b/usr/src/pkg/manifests/system-kernel-platform.mf index f91c304c1a..ed2baf264e 100644 --- a/usr/src/pkg/manifests/system-kernel-platform.mf +++ b/usr/src/pkg/manifests/system-kernel-platform.mf @@ -1096,12 +1096,18 @@ $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406C3-01 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406C4-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406D8-01 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406E3-40 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000406F1-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050653-01 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050654-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050656-01 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050657-01 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00050662-10 group=sys \ @@ -1122,8 +1128,14 @@ $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000506E3-02 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000506F1-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/00060663-80 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000706A1-01 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000706A8-01 group=sys \ + mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000706E5-80 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000806E9-10 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000806E9-40 group=sys \ @@ -1144,6 +1156,8 @@ $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000906EC-02 group=sys \ mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000906ED-02 group=sys \ mode=0444 reboot-needed=true +$(i386_ONLY)file path=platform/i86pc/ucode/GenuineIntel/000A0660-80 group=sys \ + mode=0444 reboot-needed=true $(i386_ONLY)file path=platform/i86xpv/kernel/$(ARCH64)/unix group=sys \ mode=0755 $(i386_ONLY)file path=platform/i86xpv/kernel/cpu/$(ARCH64)/cpu.generic \ @@ -1596,6 +1610,14 @@ $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/000406F1-40 \ target=000406F1-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/000406F1-80 \ target=000406F1-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050653-02 \ + target=00050653-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050653-04 \ + target=00050653-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050653-10 \ + target=00050653-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050653-80 \ + target=00050653-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-02 \ target=00050654-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-04 \ @@ -1606,6 +1628,18 @@ $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-20 \ target=00050654-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-80 \ target=00050654-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-02 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-04 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-08 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-10 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-20 \ + target=00050656-01 +$(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-80 \ + target=00050656-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050657-02 \ target=00050657-01 $(i386_ONLY)hardlink path=platform/i86pc/ucode/GenuineIntel/00050657-04 \ diff --git a/usr/src/uts/common/fs/nfs/nfs3_srv.c b/usr/src/uts/common/fs/nfs/nfs3_srv.c index b10ae94693..7f5f4611b3 100644 --- a/usr/src/uts/common/fs/nfs/nfs3_srv.c +++ b/usr/src/uts/common/fs/nfs/nfs3_srv.c @@ -382,6 +382,9 @@ rfs3_lookup(LOOKUP3args *args, LOOKUP3res *resp, struct exportinfo *exi, dvap = NULL; + if (exi != NULL) + exi_hold(exi); + /* * Allow lookups from the root - the default * location of the public filehandle. @@ -420,8 +423,19 @@ rfs3_lookup(LOOKUP3args *args, LOOKUP3res *resp, struct exportinfo *exi, fhp = &args->what.dir; if (strcmp(args->what.name, "..") == 0 && EQFID(&exi->exi_fid, FH3TOFIDP(fhp))) { - resp->status = NFS3ERR_NOENT; - goto out1; + if ((exi->exi_export.ex_flags & EX_NOHIDE) && + (dvp->v_flag & VROOT)) { + /* + * special case for ".." and 'nohide'exported root + */ + if (rfs_climb_crossmnt(&dvp, &exi, cr) != 0) { + resp->status = NFS3ERR_ACCES; + goto out1; + } + } else { + resp->status = NFS3ERR_NOENT; + goto out1; + } } ca = (struct sockaddr *)svc_getrpccaller(req->rq_xprt)->buf; @@ -439,10 +453,12 @@ rfs3_lookup(LOOKUP3args *args, LOOKUP3res *resp, struct exportinfo *exi, */ if (PUBLIC_FH3(&args->what.dir)) { publicfh_flag = TRUE; + + exi_rele(exi); + error = rfs_publicfh_mclookup(name, dvp, cr, &vp, &exi, &sec); - if (error && exi != NULL) - exi_rele(exi); /* See comment below Re: publicfh_flag */ + /* * Since WebNFS may bypass MOUNT, we need to ensure this * request didn't come from an unlabeled admin_low client. @@ -464,8 +480,6 @@ rfs3_lookup(LOOKUP3args *args, LOOKUP3res *resp, struct exportinfo *exi, if (tp == NULL || tp->tpc_tp.tp_doi != l_admin_low->tsl_doi || tp->tpc_tp.host_type != SUN_CIPSO) { - if (exi != NULL) - exi_rele(exi); VN_RELE(vp); error = EACCES; } @@ -480,6 +494,12 @@ rfs3_lookup(LOOKUP3args *args, LOOKUP3res *resp, struct exportinfo *exi, if (name != args->what.name) kmem_free(name, MAXPATHLEN + 1); + if (error == 0 && vn_ismntpt(vp)) { + error = rfs_cross_mnt(&vp, &exi); + if (error) + VN_RELE(vp); + } + if (is_system_labeled() && error == 0) { bslabel_t *clabel = req->rq_label; @@ -490,8 +510,6 @@ rfs3_lookup(LOOKUP3args *args, LOOKUP3res *resp, struct exportinfo *exi, if (!blequal(&l_admin_low->tsl_label, clabel)) { if (!do_rfs_label_check(clabel, dvp, DOMINANCE_CHECK, exi)) { - if (publicfh_flag && exi != NULL) - exi_rele(exi); VN_RELE(vp); error = EACCES; } @@ -512,15 +530,6 @@ rfs3_lookup(LOOKUP3args *args, LOOKUP3res *resp, struct exportinfo *exi, auth_weak = TRUE; } - /* - * If publicfh_flag is true then we have called rfs_publicfh_mclookup - * and have obtained a new exportinfo in exi which needs to be - * released. Note that the original exportinfo pointed to by exi - * will be released by the caller, common_dispatch. - */ - if (publicfh_flag) - exi_rele(exi); - if (error) { VN_RELE(vp); goto out; @@ -529,6 +538,7 @@ rfs3_lookup(LOOKUP3args *args, LOOKUP3res *resp, struct exportinfo *exi, va.va_mask = AT_ALL; vap = rfs4_delegated_getattr(vp, &va, 0, cr) ? NULL : &va; + exi_rele(exi); VN_RELE(vp); resp->status = NFS3_OK; @@ -556,6 +566,9 @@ out: } else resp->status = puterrno3(error); out1: + if (exi != NULL) + exi_rele(exi); + DTRACE_NFSV3_4(op__lookup__done, struct svc_req *, req, cred_t *, cr, vnode_t *, dvp, LOOKUP3res *, resp); @@ -3609,13 +3622,18 @@ good: if (vn_is_nfs_reparse(nvp, cr)) nvap->va_type = VLNK; - vattr_to_post_op_attr(nvap, &infop[i].attr); - - error = makefh3(&infop[i].fh.handle, nvp, exi); - if (!error) - infop[i].fh.handle_follows = TRUE; - else + if (vn_ismntpt(nvp)) { + infop[i].attr.attributes = FALSE; infop[i].fh.handle_follows = FALSE; + } else { + vattr_to_post_op_attr(nvap, &infop[i].attr); + + error = makefh3(&infop[i].fh.handle, nvp, exi); + if (!error) + infop[i].fh.handle_follows = TRUE; + else + infop[i].fh.handle_follows = FALSE; + } VN_RELE(nvp); dp = nextdp(dp); diff --git a/usr/src/uts/common/fs/nfs/nfs_srv.c b/usr/src/uts/common/fs/nfs/nfs_srv.c index 0588c5643e..2535ab3219 100644 --- a/usr/src/uts/common/fs/nfs/nfs_srv.c +++ b/usr/src/uts/common/fs/nfs/nfs_srv.c @@ -18,9 +18,10 @@ * * CDDL HEADER END */ + /* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2016 by Delphix. All rights reserved. */ @@ -329,6 +330,80 @@ rfs_setattr_getfh(struct nfssaargs *args) return (&args->saa_fh); } +/* Change and release @exip and @vpp only in success */ +int +rfs_cross_mnt(vnode_t **vpp, struct exportinfo **exip) +{ + struct exportinfo *exi; + vnode_t *vp = *vpp; + fid_t fid; + int error; + + VN_HOLD(vp); + + if ((error = traverse(&vp)) != 0) { + VN_RELE(vp); + return (error); + } + + bzero(&fid, sizeof (fid)); + fid.fid_len = MAXFIDSZ; + error = VOP_FID(vp, &fid, NULL); + if (error) { + VN_RELE(vp); + return (error); + } + + exi = checkexport(&vp->v_vfsp->vfs_fsid, &fid); + if (exi == NULL || + (exi->exi_export.ex_flags & EX_NOHIDE) == 0) { + /* + * It is not error, just subdir is not exported + * or "nohide" is not set + */ + if (exi != NULL) + exi_rele(exi); + VN_RELE(vp); + } else { + /* go to submount */ + exi_rele(*exip); + *exip = exi; + + VN_RELE(*vpp); + *vpp = vp; + } + + return (0); +} + +/* + * Given mounted "dvp" and "exi", go upper mountpoint + * with dvp/exi correction + * Return 0 in success + */ +int +rfs_climb_crossmnt(vnode_t **dvpp, struct exportinfo **exip, cred_t *cr) +{ + struct exportinfo *exi; + vnode_t *dvp = *dvpp; + + ASSERT(dvp->v_flag & VROOT); + + VN_HOLD(dvp); + dvp = untraverse(dvp); + exi = nfs_vptoexi(NULL, dvp, cr, NULL, NULL, FALSE); + if (exi == NULL) { + VN_RELE(dvp); + return (-1); + } + + exi_rele(*exip); + *exip = exi; + VN_RELE(*dvpp); + *dvpp = dvp; + + return (0); +} /* * Directory lookup. * Returns an fhandle and file attributes for file name in a directory. @@ -381,6 +456,8 @@ rfs_lookup(struct nfsdiropargs *da, struct nfsdiropres *dr, } } + exi_hold(exi); + /* * Not allow lookup beyond root. * If the filehandle matches a filehandle of the exi, @@ -388,9 +465,19 @@ rfs_lookup(struct nfsdiropargs *da, struct nfsdiropres *dr, */ if (strcmp(da->da_name, "..") == 0 && EQFID(&exi->exi_fid, (fid_t *)&fhp->fh_len)) { - VN_RELE(dvp); - dr->dr_status = NFSERR_NOENT; - return; + if ((exi->exi_export.ex_flags & EX_NOHIDE) && + (dvp->v_flag & VROOT)) { + /* + * special case for ".." and 'nohide'exported root + */ + if (rfs_climb_crossmnt(&dvp, &exi, cr) != 0) { + error = NFSERR_ACCES; + goto out; + } + } else { + error = NFSERR_NOENT; + goto out; + } } ca = (struct sockaddr *)svc_getrpccaller(req->rq_xprt)->buf; @@ -398,8 +485,8 @@ rfs_lookup(struct nfsdiropargs *da, struct nfsdiropres *dr, MAXPATHLEN); if (name == NULL) { - dr->dr_status = NFSERR_ACCES; - return; + error = NFSERR_ACCES; + goto out; } /* @@ -413,6 +500,9 @@ rfs_lookup(struct nfsdiropargs *da, struct nfsdiropres *dr, */ if (PUBLIC_FH2(fhp)) { publicfh_flag = TRUE; + + exi_rele(exi); + error = rfs_publicfh_mclookup(name, dvp, cr, &vp, &exi, &sec); } else { @@ -426,6 +516,11 @@ rfs_lookup(struct nfsdiropargs *da, struct nfsdiropres *dr, if (name != da->da_name) kmem_free(name, MAXPATHLEN); + if (error == 0 && vn_ismntpt(vp)) { + error = rfs_cross_mnt(&vp, &exi); + if (error) + VN_RELE(vp); + } if (!error) { va.va_mask = AT_ALL; /* we want everything */ @@ -452,15 +547,10 @@ rfs_lookup(struct nfsdiropargs *da, struct nfsdiropres *dr, VN_RELE(vp); } +out: VN_RELE(dvp); - /* - * If publicfh_flag is true then we have called rfs_publicfh_mclookup - * and have obtained a new exportinfo in exi which needs to be - * released. Note the the original exportinfo pointed to by exi - * will be released by the caller, comon_dispatch. - */ - if (publicfh_flag && exi != NULL) + if (exi != NULL) exi_rele(exi); /* diff --git a/usr/src/uts/common/io/blkdev/blkdev.c b/usr/src/uts/common/io/blkdev/blkdev.c index 2b185dff2b..07fa32da1d 100644 --- a/usr/src/uts/common/io/blkdev/blkdev.c +++ b/usr/src/uts/common/io/blkdev/blkdev.c @@ -122,9 +122,10 @@ * There are 4 instance global locks d_ocmutex, d_ksmutex, d_errmutex and * d_statemutex. As well a q_iomutex per waitq/runq pair. * - * Currently, there is no lock hierarchy. Nowhere do we ever own more than - * one lock, any change needs to be documented here with a defined - * hierarchy. + * Lock Hierarchy + * -------------- + * The only two locks which may be held simultaneously are q_iomutex and + * d_ksmutex. In all cases q_iomutex must be acquired before d_ksmutex. */ #define BD_MAXPART 64 @@ -1668,6 +1669,10 @@ bd_sched(bd_t *bd, bd_queue_t *bq) while ((bq->q_qactive < bq->q_qsize) && ((xi = list_remove_head(&bq->q_waitq)) != NULL)) { + mutex_enter(&bd->d_ksmutex); + kstat_waitq_to_runq(bd->d_kiop); + mutex_exit(&bd->d_ksmutex); + bq->q_qactive++; list_insert_tail(&bq->q_runq, xi); @@ -1679,10 +1684,6 @@ bd_sched(bd_t *bd, bd_queue_t *bq) mutex_exit(&bq->q_iomutex); - mutex_enter(&bd->d_ksmutex); - kstat_waitq_to_runq(bd->d_kiop); - mutex_exit(&bd->d_ksmutex); - rv = xi->i_func(bd->d_private, &xi->i_public); if (rv != 0) { bp = xi->i_bp; @@ -1690,11 +1691,13 @@ bd_sched(bd_t *bd, bd_queue_t *bq) biodone(bp); atomic_inc_32(&bd->d_kerr->bd_transerrs.value.ui32); + + mutex_enter(&bq->q_iomutex); + mutex_enter(&bd->d_ksmutex); kstat_runq_exit(bd->d_kiop); mutex_exit(&bd->d_ksmutex); - mutex_enter(&bq->q_iomutex); bq->q_qactive--; list_remove(&bq->q_runq, xi); bd_xfer_free(xi); @@ -1717,13 +1720,15 @@ bd_submit(bd_t *bd, bd_xfer_impl_t *xi) xi->i_qnum = q; mutex_enter(&bq->q_iomutex); + list_insert_tail(&bq->q_waitq, xi); - mutex_exit(&bq->q_iomutex); mutex_enter(&bd->d_ksmutex); kstat_waitq_enter(bd->d_kiop); mutex_exit(&bd->d_ksmutex); + mutex_exit(&bq->q_iomutex); + bd_sched(bd, bq); } @@ -1736,13 +1741,14 @@ bd_runq_exit(bd_xfer_impl_t *xi, int err) mutex_enter(&bq->q_iomutex); bq->q_qactive--; - list_remove(&bq->q_runq, xi); - mutex_exit(&bq->q_iomutex); mutex_enter(&bd->d_ksmutex); kstat_runq_exit(bd->d_kiop); mutex_exit(&bd->d_ksmutex); + list_remove(&bq->q_runq, xi); + mutex_exit(&bq->q_iomutex); + if (err == 0) { if (bp->b_flags & B_READ) { atomic_inc_uint(&bd->d_kiop->reads); diff --git a/usr/src/uts/common/io/tem_safe.c b/usr/src/uts/common/io/tem_safe.c index 572f9c16bd..5008d4a4d6 100644 --- a/usr/src/uts/common/io/tem_safe.c +++ b/usr/src/uts/common/io/tem_safe.c @@ -2213,9 +2213,17 @@ tem_safe_pix_cursor(struct tem_vt_state *tem, short action, switch (tems.ts_pdepth) { case 4: + ca.fg_color.mono = fg; + ca.bg_color.mono = bg; + break; case 8: +#ifdef _HAVE_TEM_FIRMWARE ca.fg_color.mono = fg; ca.bg_color.mono = bg; +#else + ca.fg_color.mono = tems.ts_color_map(fg); + ca.bg_color.mono = tems.ts_color_map(bg); +#endif break; case 15: case 16: @@ -2256,8 +2264,8 @@ tem_safe_pix_cursor(struct tem_vt_state *tem, short action, ca.bg_color.twentyfour[0] = (color >> 16) & 0xFF; ca.bg_color.twentyfour[1] = (color >> 8) & 0xFF; ca.bg_color.twentyfour[2] = color & 0xFF; - break; #endif + break; } ca.action = action; @@ -2292,6 +2300,11 @@ bit_to_pix8(struct tem_vt_state *tem, tem_char_t c, text_color_t fg_color, text_color_t bg_color) { uint8_t *dest = (uint8_t *)tem->tvs_pix_data; + +#ifndef _HAVE_TEM_FIRMWARE + fg_color = (text_color_t)tems.ts_color_map(fg_color); + bg_color = (text_color_t)tems.ts_color_map(bg_color); +#endif font_bit_to_pix8(&tems.ts_font, dest, c, fg_color, bg_color); } diff --git a/usr/src/uts/common/nfs/export.h b/usr/src/uts/common/nfs/export.h index 0252e18b34..60c6320db7 100644 --- a/usr/src/uts/common/nfs/export.h +++ b/usr/src/uts/common/nfs/export.h @@ -20,8 +20,8 @@ */ /* - * Copyright 2016 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright 2016 Nexenta Systems, Inc. All rights reserved. * Copyright 2016 Jason King. */ @@ -68,7 +68,7 @@ struct secinfo { int32_t s_refcnt; /* reference count for tracking */ /* how many children (self included) */ /* use this flavor. */ - int s_window; /* window */ + int s_window; /* window */ uint_t s_rootid; /* UID to use for authorized roots */ int s_rootcnt; /* count of root names */ caddr_t *s_rootnames; /* array of root names */ @@ -83,7 +83,7 @@ struct secinfo32 { int32_t s_refcnt; /* reference count for tracking */ /* how many children (self included) */ /* use this flavor. */ - int32_t s_window; /* window */ + int32_t s_window; /* window */ uint32_t s_rootid; /* UID to use for authorized roots */ int32_t s_rootcnt; /* count of root names */ caddr32_t s_rootnames; /* array of root names */ @@ -189,6 +189,7 @@ struct exportdata32 { #define EX_NOACLFAB 0x2000 /* If set, NFSv2 and v3 servers won't */ /* fabricate an aclent_t ACL on file systems */ /* that don't support aclent_t ACLs */ +#define EX_NOHIDE 0x4000 /* traversable from exported parent */ #ifdef _KERNEL diff --git a/usr/src/uts/common/nfs/nfs.h b/usr/src/uts/common/nfs/nfs.h index fe69ae4e87..e26025b003 100644 --- a/usr/src/uts/common/nfs/nfs.h +++ b/usr/src/uts/common/nfs/nfs.h @@ -31,7 +31,7 @@ #ifndef _NFS_NFS_H #define _NFS_NFS_H -/* nfs.h 2.38 88/08/19 SMI */ +/* nfs.h 2.38 88/08/19 SMI */ #include <sys/isa_defs.h> #include <sys/vfs.h> @@ -2278,6 +2278,8 @@ extern int rfs_publicfh_mclookup(char *, vnode_t *, cred_t *, vnode_t **, struct exportinfo **, struct sec_ol *); extern int rfs_pathname(char *, vnode_t **, vnode_t **, vnode_t *, cred_t *, int); +extern int rfs_cross_mnt(vnode_t **, struct exportinfo **); +extern int rfs_climb_crossmnt(vnode_t **, struct exportinfo **, cred_t *); extern vtype_t nf3_to_vt[]; extern kstat_named_t *rfsproccnt_v3_ptr; |