From owner-freebsd-arch@FreeBSD.ORG Thu Sep 1 08:56:18 2005 Return-Path: X-Original-To: freebsd-arch@freebsd.org Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 08BAE16A41F for ; Thu, 1 Sep 2005 08:56:18 +0000 (GMT) (envelope-from dmitry@atlantis.dp.ua) Received: from postman.atlantis.dp.ua (postman.atlantis.dp.ua [193.108.47.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3430243D4C for ; Thu, 1 Sep 2005 08:56:16 +0000 (GMT) (envelope-from dmitry@atlantis.dp.ua) Received: from smtp.atlantis.dp.ua (smtp.atlantis.dp.ua [193.108.46.231]) by postman.atlantis.dp.ua (8.13.1/8.13.1) with ESMTP id j818u6Zi007414 for ; Thu, 1 Sep 2005 11:56:06 +0300 (EEST) (envelope-from dmitry@atlantis.dp.ua) Date: Thu, 1 Sep 2005 11:56:06 +0300 (EEST) From: Dmitry Pryanishnikov To: freebsd-arch@freebsd.org Message-ID: <20050901113819.F95708@atlantis.atlantis.dp.ua> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Subject: kern/85503: panic: wrong dirclust using msdosfs in RELENG_6 X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2005 08:56:18 -0000 Hello! During the hunting the bug kern/85503 (panic: wrong dirclust in msdosfs) I've tried to think about the solution, but it seems to be architecture-related. The problem is: msdosfs uses pseudo-inodes (that is, the offset from the start of the partition to the start of directory entry in bytes) which must therefore have off_t bitness (at least 64 bits). I've found the primary error (lack of casts leaded to 32-bit result), but then we should transfer this 64-bit "inode" number to vfs_hash_get(). Oops, it also limited to u_int (32 bits on i386). Finally, I see that the primary shortcoming here: in sys/vnode.h we have /* * vfs_hash: (mount + inode) -> vnode hash. */ LIST_ENTRY(vnode) v_hashlist; u_int v_hash; I think it's feasible and useful to upgrade type of v_hash to at least off_t. In our days of large media we will face filesystems with more than 4 billions files (and thus at least 64-bit inode numbers) quite often. Am I right? Sincerely, Dmitry -- Atlantis ISP, System Administrator e-mail: dmitry@atlantis.dp.ua nic-hdl: LYNX-RIPE