NEX-3562 filename normalization doesn't work for removes (sync with upstream) 6328 Fix cstyle errors in zfs codebase (fix studio) 6328 Fix cstyle errors in zfs codebase Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Alex Reece <alex@delphix.com> Reviewed by: Richard Elling <Richard.Elling@RichardElling.com> Reviewed by: Jorgen Lundman <lundman@lundman.net> Approved by: Robert Mustacchi <rm@joyent.com> NEX-3329 libnsl: set_up_connection() over TCP does not adhere the specified timeout Reviewed by: Dan Fields <dan.fields@nexenta.com> NEX-3521 CLONE - Port NEX-3209 normalization=formD and casesensitivity=mixed behaves improperly, squashing case Reviewed by: Jean McCormack <jean.mccormack@nexenta.com> Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com> Reviewed by: Dan Fields <dan.fields@nexenta.com> NEX-3591 SMB3 signing (hdrchk) NEX-3719 CLONE - Port NEX-3517 Eliminate the unused MT_BEST code to simplify normalization & case. Reviewed by: Jean McCormack <jean.mccormack@nexenta.com> Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com> Remaining fixes for the illumos merge
569 zap_leaf_phys(l)->l_hdr.lh_nentries--;
570 }
571
572 int
573 zap_entry_create(zap_leaf_t *l, zap_name_t *zn, uint32_t cd,
574 uint8_t integer_size, uint64_t num_integers, const void *buf,
575 zap_entry_handle_t *zeh)
576 {
577 uint16_t chunk;
578 uint16_t *chunkp;
579 struct zap_leaf_entry *le;
580 uint64_t valuelen;
581 int numchunks;
582 uint64_t h = zn->zn_hash;
583
584 valuelen = integer_size * num_integers;
585
586 numchunks = 1 + ZAP_LEAF_ARRAY_NCHUNKS(zn->zn_key_orig_numints *
587 zn->zn_key_intlen) + ZAP_LEAF_ARRAY_NCHUNKS(valuelen);
588 if (numchunks > ZAP_LEAF_NUMCHUNKS(l))
589 return (E2BIG);
590
591 if (cd == ZAP_NEED_CD) {
592 /* find the lowest unused cd */
593 if (zap_leaf_phys(l)->l_hdr.lh_flags & ZLF_ENTRIES_CDSORTED) {
594 cd = 0;
595
596 for (chunk = *LEAF_HASH_ENTPTR(l, h);
597 chunk != CHAIN_END; chunk = le->le_next) {
598 le = ZAP_LEAF_ENTRY(l, chunk);
599 if (le->le_cd > cd)
600 break;
601 if (le->le_hash == h) {
602 ASSERT3U(cd, ==, le->le_cd);
603 cd++;
604 }
605 }
606 } else {
607 /* old unsorted format; do it the O(n^2) way */
608 for (cd = 0; ; cd++) {
609 for (chunk = *LEAF_HASH_ENTPTR(l, h);
|
569 zap_leaf_phys(l)->l_hdr.lh_nentries--;
570 }
571
572 int
573 zap_entry_create(zap_leaf_t *l, zap_name_t *zn, uint32_t cd,
574 uint8_t integer_size, uint64_t num_integers, const void *buf,
575 zap_entry_handle_t *zeh)
576 {
577 uint16_t chunk;
578 uint16_t *chunkp;
579 struct zap_leaf_entry *le;
580 uint64_t valuelen;
581 int numchunks;
582 uint64_t h = zn->zn_hash;
583
584 valuelen = integer_size * num_integers;
585
586 numchunks = 1 + ZAP_LEAF_ARRAY_NCHUNKS(zn->zn_key_orig_numints *
587 zn->zn_key_intlen) + ZAP_LEAF_ARRAY_NCHUNKS(valuelen);
588 if (numchunks > ZAP_LEAF_NUMCHUNKS(l))
589 return (SET_ERROR(E2BIG));
590
591 if (cd == ZAP_NEED_CD) {
592 /* find the lowest unused cd */
593 if (zap_leaf_phys(l)->l_hdr.lh_flags & ZLF_ENTRIES_CDSORTED) {
594 cd = 0;
595
596 for (chunk = *LEAF_HASH_ENTPTR(l, h);
597 chunk != CHAIN_END; chunk = le->le_next) {
598 le = ZAP_LEAF_ENTRY(l, chunk);
599 if (le->le_cd > cd)
600 break;
601 if (le->le_hash == h) {
602 ASSERT3U(cd, ==, le->le_cd);
603 cd++;
604 }
605 }
606 } else {
607 /* old unsorted format; do it the O(n^2) way */
608 for (cd = 0; ; cd++) {
609 for (chunk = *LEAF_HASH_ENTPTR(l, h);
|