From owner-svn-src-head@FreeBSD.ORG Tue Jun 11 10:06:08 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 75302154; Tue, 11 Jun 2013 10:06:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 680A919B5; Tue, 11 Jun 2013 10:06:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r5BA68oL078619; Tue, 11 Jun 2013 10:06:08 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r5BA68cI078618; Tue, 11 Jun 2013 10:06:08 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201306111006.r5BA68cI078618@svn.freebsd.org> From: Alexander Motin Date: Tue, 11 Jun 2013 10:06:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r251616 - head/sys/geom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Jun 2013 10:06:08 -0000 Author: mav Date: Tue Jun 11 10:06:07 2013 New Revision: 251616 URL: http://svnweb.freebsd.org/changeset/base/251616 Log: Don't update provider properties and don't set DISKFLAG_OPEN if d_open() disk method call returned error. GEOM considers devices in such case as still closed, and won't call symmetric d_close() for them. Modified: head/sys/geom/geom_disk.c Modified: head/sys/geom/geom_disk.c ============================================================================== --- head/sys/geom/geom_disk.c Tue Jun 11 06:22:09 2013 (r251615) +++ head/sys/geom/geom_disk.c Tue Jun 11 10:06:07 2013 (r251616) @@ -138,6 +138,8 @@ g_disk_access(struct g_provider *pp, int printf("Opened disk %s -> %d\n", pp->name, error); g_disk_unlock_giant(dp); + if (error != 0) + return (error); } pp->mediasize = dp->d_mediasize; pp->sectorsize = dp->d_sectorsize;