From owner-svn-src-stable-9@FreeBSD.ORG Wed Jul 10 20:56:04 2013 Return-Path: Delivered-To: svn-src-stable-9@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 C1080DB3; Wed, 10 Jul 2013 20:56:04 +0000 (UTC) (envelope-from pfg@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 B2B871B6F; Wed, 10 Jul 2013 20:56:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6AKu4ji081652; Wed, 10 Jul 2013 20:56:04 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6AKu4dP081651; Wed, 10 Jul 2013 20:56:04 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201307102056.r6AKu4dP081651@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Wed, 10 Jul 2013 20:56:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r253170 - stable/9/sys/fs/ext2fs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jul 2013 20:56:04 -0000 Author: pfg Date: Wed Jul 10 20:56:04 2013 New Revision: 253170 URL: http://svnweb.freebsd.org/changeset/base/253170 Log: MFC r252956: Implement SEEK_HOLE/SEEK_DATA for ext2fs. Modified: stable/9/sys/fs/ext2fs/ext2_vnops.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/fs/ (props changed) Modified: stable/9/sys/fs/ext2fs/ext2_vnops.c ============================================================================== --- stable/9/sys/fs/ext2fs/ext2_vnops.c Wed Jul 10 20:22:31 2013 (r253169) +++ stable/9/sys/fs/ext2fs/ext2_vnops.c Wed Jul 10 20:56:04 2013 (r253170) @@ -48,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -94,6 +95,7 @@ static vop_close_t ext2_close; static vop_create_t ext2_create; static vop_fsync_t ext2_fsync; static vop_getattr_t ext2_getattr; +static vop_ioctl_t ext2_ioctl; static vop_link_t ext2_link; static vop_mkdir_t ext2_mkdir; static vop_mknod_t ext2_mknod; @@ -124,6 +126,7 @@ struct vop_vector ext2_vnodeops = { .vop_fsync = ext2_fsync, .vop_getattr = ext2_getattr, .vop_inactive = ext2_inactive, + .vop_ioctl = ext2_ioctl, .vop_link = ext2_link, .vop_lookup = vfs_cache_lookup, .vop_mkdir = ext2_mkdir, @@ -1433,6 +1436,9 @@ ext2_pathconf(struct vop_pathconf_args * case _PC_NO_TRUNC: *ap->a_retval = 1; return (0); + case _PC_MIN_HOLE_SIZE: + *ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize; + return(0); default: return (EINVAL); } @@ -1707,6 +1713,20 @@ ext2_read(struct vop_read_args *ap) return (error); } +static int +ext2_ioctl(struct vop_ioctl_args *ap) +{ + + switch (ap->a_command) { + case FIOSEEKDATA: + case FIOSEEKHOLE: + return (vn_bmap_seekhole(ap->a_vp, ap->a_command, + (off_t *)ap->a_data, ap->a_cred)); + default: + return (ENOTTY); + } +} + /* * Vnode op for writing. */