From owner-freebsd-fs@FreeBSD.ORG Thu Nov 16 20:06:24 2006 Return-Path: X-Original-To: freebsd-fs@freebsd.org Delivered-To: freebsd-fs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AD90016A49E; Thu, 16 Nov 2006 20:06:24 +0000 (UTC) (envelope-from ambrisko@ambrisko.com) Received: from mail.ambrisko.com (mail.ambrisko.com [64.174.51.43]) by mx1.FreeBSD.org (Postfix) with ESMTP id D48C843DE4; Thu, 16 Nov 2006 20:05:09 +0000 (GMT) (envelope-from ambrisko@ambrisko.com) Received: from server2.ambrisko.com (HELO www.ambrisko.com) ([192.168.1.2]) by mail.ambrisko.com with ESMTP; 16 Nov 2006 12:02:25 -0800 Received: from ambrisko.com (localhost [127.0.0.1]) by www.ambrisko.com (8.13.1/8.12.11) with ESMTP id kAGK58xr084522; Thu, 16 Nov 2006 12:05:08 -0800 (PST) (envelope-from ambrisko@ambrisko.com) Received: (from ambrisko@localhost) by ambrisko.com (8.13.1/8.13.1/Submit) id kAGK58cB084521; Thu, 16 Nov 2006 12:05:08 -0800 (PST) (envelope-from ambrisko) From: Doug Ambrisko Message-Id: <200611162005.kAGK58cB084521@ambrisko.com> In-Reply-To: <20061116191858.GF63195@garage.freebsd.pl> To: Pawel Jakub Dawidek Date: Thu, 16 Nov 2006 12:05:08 -0800 (PST) X-Mailer: ELM [version 2.4ME+ PL94b (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Cc: freebsd-fs@FreeBSD.org, freebsd-current@FreeBSD.org, Doug Ambrisko Subject: Re: ZFS patches for FreeBSD. X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Nov 2006 20:06:24 -0000 Pawel Jakub Dawidek writes: | On Thu, Nov 16, 2006 at 07:21:59AM -0800, Doug Ambrisko wrote: | > I skipped the mkdir and used patch -p0. Everything looked to compile | > okay but when I kldload zfs is fails since the kernel doesn't | > have memset: | > %kldload zfs | > link_elf: symbol memset undefined | > kldload: can't load zfs: No such file or directory | > % | > Is there another change required? | | I applied the patch before publishing on clean source and I don't see | such problem... Interesting thing is that there is no memset() use in | ZFS kernel source: | | # grep -r memset sys/ | grep -v zap_memset | # | | Does anyone else seeing this problem? This is on i386: one% grep memset zfs_20061117.patch + (void) memset(p, 0, n); + (void) memset(wp, 0, sizeof (*wp)); + (void) memset(wp, 0, sizeof (*wp)); +zap_memset(void *a, int c, size_t n) + zap_memset(&l->l_phys->l_hdr, 0, sizeof (struct zap_leaf_header)); + zap_memset(l->l_phys->l_hash, CHAIN_END, 2*ZAP_LEAF_HASH_NUMENTRIES(l)); + zap_memset(l->l_phys->l_hash, CHAIN_END, 2*ZAP_LEAF_HASH_NUMENTRIES(l)); one% In contrib/opensolaris/lib/libuutil/common/uu_alloc.c +void * +uu_zalloc(size_t n) +{ + void *p = malloc(n); + + if (p == NULL) { + uu_set_error(UU_ERROR_SYSTEM); + return (NULL); + } + + (void) memset(p, 0, n); + + return (p); +} + %nm dmu_objset.o | grep memset U memset % If I run it compile -E I see static __inline void * memset(void *b, int c, size_t len) { char *bb; if (c == 0) bzero(b, len); else for (bb = (char *)b; len--; ) *bb++ = c; return (b); } and nothing calling it unless it is what Max. is talking about. I don't see other stuff breaking. Doug A.