From owner-freebsd-bugs@FreeBSD.ORG Sat Feb 21 09:50:35 2015 Return-Path: Delivered-To: freebsd-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 542A6BB7 for ; Sat, 21 Feb 2015 09:50:35 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 20A10E4C for ; Sat, 21 Feb 2015 09:50:35 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t1L9oY6Q079148 for ; Sat, 21 Feb 2015 09:50:34 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 197876] sector size agreed with GEOM gate is not reflected in the block size of the device entry Date: Sat, 21 Feb 2015 09:50:35 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.1-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: jau@iki.fi X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Feb 2015 09:50:35 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197876 Bug ID: 197876 Summary: sector size agreed with GEOM gate is not reflected in the block size of the device entry Product: Base System Version: 10.1-STABLE Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: jau@iki.fi When I set a 16k sector size for a new GEOM gate provider the existing consumers happily use multiples of 16k when tasting the new provider. The sector size is not reflected in the block size of the new device entry as reported by stat(), though. The new device entry is reported as using 4k blocks by stat(). If I ignore the block size value reported by stat() and anyhow use what was set when the new provider was created, everything works. (dd bs=16384 ...) The big problem is that usually programs know nothing more of the true block size but what is reported by stat(). Think of e.g. stdio. Any program using stdio to access a device will end up trying to use a wrong block size. When the user space application (think of e.g. fstyp) tries to use wrong block size to read or write the new device, the request never gets all the way to GEOM gate. Something higher up in the chain notices that the block size used by the program does not match the sector size of the underlying GEOM provider and responds with EINVAL to the program. For the time being I do not know how and where the device entry gets the faulty block size. -- You are receiving this mail because: You are the assignee for the bug.