From nobody Wed Aug 10 22:17:36 2022 X-Original-To: freebsd-fs@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4M347S1WFJz4YpLW for ; Wed, 10 Aug 2022 22:17:40 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-YQB-obe.outbound.protection.outlook.com (mail-yqbcan01on2081.outbound.protection.outlook.com [40.107.116.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4M347Q6N6lz3DJV for ; Wed, 10 Aug 2022 22:17:38 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fPyvVW3eKHxYcsNOY8QCUfRHHTxztP4mum0RrBmiGgmru3KV2CFvE/wTdTIrF0BXPPeFW+gpOUtsbeU5ECNpuJRsbKfFgjXAO5xwmk9/BQYZG9IVQ6jOG1MGGnlOIrlkpQLWdeTQjMxmDvWwoydm/L0ocixWYVtXmLCeoBDNeMNIIEe4JpYpur6D5HBp1jILJ9YAzcNN9YKlp/34G1de+2cRLBEdIDFbWyyOJW9zvdV6B47wKJZOSDEVvUrBWYVE6o96NFQrL3y+m+Q5I7BgDYLnsi8dUtmOUC+DGiFD8yc2vT4xHvGBCFX2lRPsTb4n+YMSofAjyo/8RfbFqmiiqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Kd7inJt0N+0iNgDGTEcuc6JK4utFanPQNltmO/pSaHA=; b=GmjqtL8o9DmGPIZrD7N0zIQbCg2KLKepVpo3Eg77oWrEci+DojHedvaHzBnNn2Dj9w9PJGLBosdgYR9NDimTcGamm3Uq0BEN30UIMb76LtlHNBJBNWRK5nEvSxUj6B+8lEZdUCK2+jpNzt7JaTiW136nH65YCpJWkMDb4PWHL9/09XcBaxl1Kf5NEqpeVslodtwkE+GU9WsTju06WLAN6vlaRrzWwtMcSlxgDD2oYJ7mhieIghyspHojSffxCmUVrJvr0+hihGlqNfE/0gbWrS1Gz/sfj1NbA5PJujmCSWb+dunWwlO6UbLJ9FJmf1mO0yo/8Kz+8CzwaTSGvNDUFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uoguelph.ca; dmarc=pass action=none header.from=uoguelph.ca; dkim=pass header.d=uoguelph.ca; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uoguelph.ca; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Kd7inJt0N+0iNgDGTEcuc6JK4utFanPQNltmO/pSaHA=; b=crKxYzQ+1KFqhtG3YdCcaqJrHLZvndWCOjBllKjn6c66ysDZ8VUaRdwg6V93yDhz0Kh6mYNOy0JtLMV+N1YCkz09VXF0+FtDTTSn93I2yXhz1Dm2Nx+Mqrk4LpL+AdfOrZRAEntv8Wha3byCdjF/gjQkx4QZVNUKp2fEK5xRB2TZRhQhGdzhBislpGVNIrz1PtCiwT80bVET1cva2odlY0epfFhAuhlRjR+3hmoCrQmscIIqDS+14TPBnTtHgxqtJQPen3BHfXkPE/I4Ihd5MmIoTHvXk6ZsHJDF+bKqBjdsGk31C3xQHfsKtaiopvo1Q3D4EHk3jASdzU8kH3MLkg== Received: from YQBPR0101MB9742.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:81::14) by YQXPR01MB4261.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:10::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.16; Wed, 10 Aug 2022 22:17:36 +0000 Received: from YQBPR0101MB9742.CANPRD01.PROD.OUTLOOK.COM ([fe80::fc57:d758:2fe:c5fd]) by YQBPR0101MB9742.CANPRD01.PROD.OUTLOOK.COM ([fe80::fc57:d758:2fe:c5fd%7]) with mapi id 15.20.5525.011; Wed, 10 Aug 2022 22:17:36 +0000 From: Rick Macklem To: FreeBSD Filesystems Subject: SEEK_DATA/SEEK_HOLE with vnode locked Thread-Topic: SEEK_DATA/SEEK_HOLE with vnode locked Thread-Index: AQHYrQY7fWQ5YS0dF02y4OgRBDgrJQ== Date: Wed, 10 Aug 2022 22:17:36 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 803119d2-dd2a-4748-0137-08da7b1e2124 x-ms-traffictypediagnostic: YQXPR01MB4261:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rwiOBLJrKT0N7Pj4yFN24LHQetZKXnMcPGfRYSTc3yPtEaEP8GqhGGh/usFuDMiKZndGr3CAzi8Iw2vJ3SsKHvygFatDaph7er8RjWOG10xFVwroMxewq23iR6gjZkgHcM9vxagO387CBVIKwNB7kg4dgusECpzzUO2wI3FMG0CCLwhMwEWjObGeEmXJoNd1nj9OfeHB/UVR8Yc1MhuNZrs6YV7oAMO6hc1xbyz/KNRVs1VbdDosV1yBfnhnvqGlfu5mb8+K9Q4WmzwWE5HEJOr6MKYs2RPg6VRewp4tLm8KABEgw2jr/H0x/WdPWnMhxuqu7x3hojwUvqgp3bNEHfITUrJDJSz+DALWFfhYsvS7BvtuH9Pzynlk++Z4xsolZ+NmuBYrZis9oPmimOnR7yM3FlL34VBBgyKnA1Eab0ENpGyWIYCb6CjgHgX0YLbIEswhz68r8nljepVbtvijovjB1xf4TOTOqJWczjc/8u1Fv+wTh0PNPkvM6neCC3Ztz1WNvSpOfPVjwA6uAGWTJO/oZZVWzJNkXIn/cx4ZI2mW7iYFxCNKV2fnlr1oLLgwEGrZI/gXzvAFd5ZXX/kaxIRt5VcewXNYPYVL98XGWkl4QrfaLEOWCshP44PtqKjTBDO3h410c5Rkphjfuf8nbahCOkHYJBQtiPuM4rM/FKf5eETAiymCTla+vyq4wYtyiemip7wuCM6ZmQojbE3CDKC3FdV8sQuYWrT2t4WKYPqOZaU6j6rn25XSDPOuiRzCpcbHPYPyqcaglZBQwZnWIh9qgvOsRXljVCvDE5v9UyuuBZJlbcAgyfK5emDN/lkY x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YQBPR0101MB9742.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230016)(4636009)(376002)(366004)(396003)(346002)(39860400002)(136003)(55016003)(86362001)(7696005)(9686003)(6506007)(66946007)(122000001)(38100700002)(38070700005)(83380400001)(66556008)(91956017)(186003)(66446008)(41300700001)(64756008)(66476007)(8676002)(6916009)(33656002)(5660300002)(2906002)(52536014)(41320700001)(4744005)(8936002)(76116006)(71200400001)(478600001)(786003)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?+in4Vmj3wEmbghw9OeLLzuPzaqaSZb25ji82oEc6l0mRZ5RB4zmXzpEmbO?= =?iso-8859-1?Q?YjveHe3MYE5G+a3Lab+g0LtwSQQEXhiPJltWm37ZxBAMx5etIW+64/LBsT?= =?iso-8859-1?Q?iiSYp004cA8nDT38paLHawrzOwDU5Y4Lnx4eG6LdroYXzvZ+G3lEcm9wEP?= =?iso-8859-1?Q?qeiaBo5iIg1H/TWZDMUiL/ZLuy1wsSjjgLyuSjFY4fhVlCuD63B67ZTG+Y?= =?iso-8859-1?Q?ZFjeUlVLxjKezL6omoVj/JZ7IHKIvC3s4WaqZPk9uudU2xsrG1J7qEWZPm?= =?iso-8859-1?Q?Drzmar776gGHnkmI9QfRxliCak5wA3sMRmuXpXo8qtc7c8fF3lkddoarNo?= =?iso-8859-1?Q?OHhW6V5aFofrCEI8QWq+iYM4I1YdF0l+6nkiPgAERECwzGN13V0WtuKLKd?= =?iso-8859-1?Q?PNpP4EE+KKRvyrwl6513SNmQYVkR9VVUEXOCYzjwgCFeKDoE0g+S2kg1p+?= =?iso-8859-1?Q?4J9y+e2GR3s1nrRyX2RA4ic1jYXps6tJ8mAXDRVbfC82SuNYUZa69xYUdj?= =?iso-8859-1?Q?P/x7Dkttdsg05glWDFb7e16tNUwg0iSajK+rRXi7tY1DWN5Lf0TRjFeP9o?= =?iso-8859-1?Q?VMFu77W4tEYecd0X9cWASMm4Wm4Wp8wV5GRE6P//egwlBYlyiYqz8BlQQz?= =?iso-8859-1?Q?DlRO79/J+0rMouw9S9XJivM4jeC5MpSb0HqXrW+Ei9JRPCg9jqFsZ5VB5W?= =?iso-8859-1?Q?mFQyhtFokTpmfgVMkj1OCthql4xkHEPruJYB3ggBvUXtNUc1o9CxYYZ7+h?= =?iso-8859-1?Q?3+EtwsR3dMkCptm+39Rs/G9CmixgsKtJHi4UIlmrc6YeXLAJJMWRT2r4FC?= =?iso-8859-1?Q?5PO0CP0SXPDuPDWjWSsMkjhsrvePzjt+cYppDCHnXnp2JNwU98MvRBvc3l?= =?iso-8859-1?Q?cJsDr6/HtIL5JHgonJER5Tcik5hhMoq2woPYErMMVJpiNQd7iwf7ETQTWs?= =?iso-8859-1?Q?rg7IJ4Z+T1m6Y3sxq+aaWbz3AcLRF6IqwWu23mPqcbko504pgL+lv31/fT?= =?iso-8859-1?Q?bbemeWLf8WtBEuTRCO4FF82Xtg35EOx9o7tWPWZEod7qjCD6x9b5oGDlso?= =?iso-8859-1?Q?hlGm4U1EEZhI4Vekc/pkz8lCeqZbbeXtDRociG4KVhyjxBf1Kh30rSlfuq?= =?iso-8859-1?Q?vdNjdMWXhEJ5mWWfElVLItdmGt8q/2FGTB4lN8IxsNbLXQJngScZdC3a8U?= =?iso-8859-1?Q?dSvInrdyA1Vd3nUs7747lhq5GoqNaxppZWJJFPAlhF4C+kkc5pxyjrBSer?= =?iso-8859-1?Q?iQ6R6QoP0XLGLBp35vLHCpkEOzEciO5LsJ+1p6wKQDdToYmhyvhtwWpJXs?= =?iso-8859-1?Q?4F8hrXsbHz7WkWUcqkQbYMenTf08mijoQ0qQz6QzbxGipoAO2q3zo5YTN/?= =?iso-8859-1?Q?Ov+yrw7RZfXd3TylXJIdh3UNGBdu29P2uLpF6UEliu5isaWjKK8fbpFOo3?= =?iso-8859-1?Q?U5g6o8Mp8PTQvdqTAsQt/j+1YoiHQyrYLPXYJBZs5gBHS5LAjwJ1Fu8fhf?= =?iso-8859-1?Q?XqrOtX2yshnd0qmKoW+85t2XcvyHnZ1MqSujx8+NEet+Cj4b8YIBNco1PS?= =?iso-8859-1?Q?3Uz9F8ouVZo8llEfkysdsRVRWzswmuaGMXi2RQYRm9vE3aTdsgzqLwFBB6?= =?iso-8859-1?Q?BqmK0I/REbuZGZ9NF8VvA/P24fI9FIyUBywU5ZFO9e8GhGYSVJ/d9spKYo?= =?iso-8859-1?Q?4Y0zaL0XvJmhpG9pffWVKj1Q8iSKVPSHbm5o2yag?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable List-Id: Filesystems List-Archive: https://lists.freebsd.org/archives/freebsd-fs List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-fs@freebsd.org MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YQBPR0101MB9742.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 803119d2-dd2a-4748-0137-08da7b1e2124 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Aug 2022 22:17:36.1433 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NrnoN8fB3GzOKZlqvqxeGEiBYtq87CUW9+xBCzFBuZbBOZDBOy6P54oNhtWQvPc14iGk/x3oS+xES2blxVhOgw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQXPR01MB4261 X-Rspamd-Queue-Id: 4M347Q6N6lz3DJV X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=uoguelph.ca header.s=selector2 header.b=crKxYzQ+; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=uoguelph.ca; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.116.81 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-6.00 / 15.00]; DWL_DNSWL_LOW(-1.00)[uoguelph.ca:dkim]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[uoguelph.ca,none]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; R_DKIM_ALLOW(-0.20)[uoguelph.ca:s=selector2]; MIME_GOOD(-0.10)[text/plain]; MLMMJ_DEST(0.00)[freebsd-fs@freebsd.org]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US]; RCVD_TLS_LAST(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; FREEFALL_USER(0.00)[rmacklem]; DKIM_TRACE(0.00)[uoguelph.ca:+]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.107.116.81:from] X-ThisMailContainsUnwantedMimeParts: N Hi,=0A= =0A= When implementing what is called Read_Plus for the NFSv4.2=0A= server, I need to do SEEK_DATA/SEEK_HOLE. However, if I=0A= use VOP_IOCTL(), I need to unlock/relock the vnode.=0A= =0A= This can result in problems if another RPC changes the size=0A= of the file or allocates/deallocates data in the file while the=0A= vnode is unlocked.=0A= =0A= From what I can see, UFS does SEEK_DATA/SEEK_HOLE with=0A= the vnode locked and ZFS doesn't seem to care/notice if it=0A= is locked.=0A= (Actually, ZFS looks like it might be unsafe, since it seems to=0A= assume it can use the unlocked vnode that might be doomed,=0A= but I do not know ZFS.)=0A= =0A= Anyhow, does implementing a new vnode op VOP_SEEK(), which=0A= takes a locked vnode and does SEEK_DATA/SEEK_HOLE sound=0A= reasonable?=0A= =0A= Thanks in advance for any info, rick=0A=