From nobody Mon Dec 13 16:26:42 2021 X-Original-To: freebsd-current@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 533E118D2442 for ; Mon, 13 Dec 2021 16:26:56 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-TO1-obe.outbound.protection.outlook.com (mail-eopbgr670055.outbound.protection.outlook.com [40.107.67.55]) (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 4JCRjW3Q2mz3vW2 for ; Mon, 13 Dec 2021 16:26:55 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HxeSV18hVFwJMYVluH5BblDWUkKe7F4t0DU/dlLdN0dOrZWGrSxxJ8y4X7CbqRDXoJEEA8zzjS/2bh+TPtcJGf5RzwsVQeHOIM7+4xJzjG+DcocE+V8UBBE4d/sh9L8Nsha0VER00tj5M5ups2H37waVzy89WgUp284NA5B7qMPUIibe9H8sZruvnp6zTKAEfIn4Q4tcnLqyP1BR7ZxovpiiDBI4YF4GNOsP/LNbilebvNfAWgJI+Kv1sV+xzom6k74YGtpAbEhO1apM4WD/4voypy1zk4sxNU6hcO7YxmIt5Olf5KgY6niFso6FMaf0HdJa6XhJdRMPr0YDU7nFeg== 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=HR/R5gsPub0Nmc55KIVX3T5XxeMKVMQTv/RgpmaPZRw=; b=h7iWKlk+9TTLFY7U0JkZCsCNIIK9lTBDUuXhgNukI+Ec6a8rcdGV9YbxD5zEG0p1x5QiUeKTKFPiRkFUCxkj3jU43xEHvzFOqKhFcSNC+juQqpJ/iWKoAbVE5K5YRn9CWD0S/d53Pa+mGwxajdTJs+2KjqF6eTQDH+6yIlX4qNMT4NcGIzoJwuwGcq0gLoO+ypI543kHog1RmRpeq9Nz7x+3wTt/c24jpCSosrO5cQDlEUQ2/0OCQt/YpHuLSIJ7y5D6mD5eApUI8C1Ch8fcW/YAL7mjqEX0jFeVklUQeSBrc8F/zrqW99DQpDkgiSn05cLjiFACKqUOpgbVbekyVw== 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=HR/R5gsPub0Nmc55KIVX3T5XxeMKVMQTv/RgpmaPZRw=; b=NKtiaXihBlXu8qrOCoXbhslB4rWxaE/UFXwxdnJvhgmJqOdQG7HVsJ9EWNu3d6XwOFg++Dsa1Kdv01lRMLIEA9IDaN1c/whM1uC/0jc8g4K9o2H0WyjnFhRjqQ1H779/TkqHE4VEvgCBHgZbYgm9JCfwwMitpcRFuIl32CgqsX2klt5fR5R1AS+p4iq3z9FUmWAWdidsAoYirsaPlntnqz3lXnPvwHXmXFF5PIV12o6CG8+prixSCPQjh72EI/dTqB6vOC9Qeyio9MV0zYBdLvgX+uvH3vpP0jdti7cu6GYc4VakhboWwBYzX2JbLP+TAJtUNZhnWl57L828uHNtpw== Received: from YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c00:19::29) by YQXPR01MB6075.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:28::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.11; Mon, 13 Dec 2021 16:26:48 +0000 Received: from YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM ([fe80::e56f:b7a2:3830:5706]) by YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM ([fe80::e56f:b7a2:3830:5706%3]) with mapi id 15.20.4778.017; Mon, 13 Dec 2021 16:26:42 +0000 From: Rick Macklem To: FreeBSD Current Subject: RFC: What to do about Allocate in the NFS server for FreeBSD13? Thread-Topic: RFC: What to do about Allocate in the NFS server for FreeBSD13? Thread-Index: AQHX8DzJnOLrzTHZ6EiZFqH7GNa45g== Date: Mon, 13 Dec 2021 16:26:42 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 9369b04c-e59b-aff7-3f30-30ed0597c2b5 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9b02922b-a2b1-438e-bdc6-08d9be555904 x-ms-traffictypediagnostic: YQXPR01MB6075:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2+ENsQczeA0l9S+lu2/GvK4wRfTrehDoooGSL0/kM1VxAggDt5F21hijmc9WFaiCJHhrhzguEDMcowXTIktrnBmS+r2NgwGx4mrnPN/FamuyWxu/c4NjdDJUCILA9I4NINvJLFR4BDakOdwq3Ikfn5HhLwk12olNR/P+gBFj45WK3G0CYfKdTacXVZ2hHxH5ITXK51tQedO9Jq897thNZIXuYLfyR/4XPWwB/60aVoLrt/7Vy5xHhBpHfryum/1FTOddzZLf+/G3znkUZL2a6R0SZCsMJvcMgbJq+AcaFJH7Cjtj90wkMI7rrKdD3c5rTvuq9ZC3grmOow5OBS+/yBL24ijs8HcKqDoAXEDth8r1X7V3l+xARK85ULh4af9vDfnukKGT7pDYCLrDenfiZWPZ9Z54GMfzj3msE8yln8N3OGUfbQpJV/8vQh0YdBnEwgoZ7DqovqaqRO5M3i6YZj3HgNLJcTK+jY1AzlvksaCy+iDcNmUXANqdiweLpwC2sNUdJeEtXGjzHbAR0Y+7bwdw/QZmHhxHrv0xnJakB8pUWSRtVFK5Wo9sJfbw9TkiP9ByAxBOrzleWh5YzkJaPG1EoDYXKOQRR50RuooLxvbv00uyI2WR1BdN2GMJwnE71qWHAsPpK07Qq2VB47AE/uV2+b2uMkEPT4YIKz2XSGyKJLN838qb5k6ujXFbsvFR x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(366004)(5660300002)(55016003)(83380400001)(71200400001)(33656002)(2906002)(122000001)(38100700002)(786003)(316002)(186003)(38070700005)(8936002)(52536014)(6506007)(6916009)(508600001)(66946007)(9686003)(64756008)(66446008)(86362001)(66556008)(8676002)(7696005)(76116006)(91956017)(66476007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?A/ha7qUlYak2XMI1w7PDNAFbJqJKIMunb1vOl4RT2Q8n26MtmIJ5KbD4BO?= =?iso-8859-1?Q?nr/OiIvAc+SuAt9eChDbHmAc02s8qpngyV9Z2VgKlzfs11BeTsvbRXgNY4?= =?iso-8859-1?Q?VxHt9K7BhsHsRRRQWtKOOU8KSZxHJG1VturOZt60GKLG8HsS7ULKpz8rfT?= =?iso-8859-1?Q?xHa9lgsmG8M4qzDzucn9/aF0aaOJCBuPAtkNuDAitAA1qWWvNqTDUm6ydd?= =?iso-8859-1?Q?7WP7fwrL+aILcCwkm5lY/edTFCjFjRmYC/ir2FYD0t2qmUe8y9p4ajNg8z?= =?iso-8859-1?Q?LL2MMv6weRReq4KXFG9ngCEBFNaZTz6p1ZMRV8PwUIUUoiv7rDdxHqsNCk?= =?iso-8859-1?Q?G6X5cNJ1QcDs272wy2Ho2ay85wsmieBXJEdbe2232niaZRGWXhHqj9tuEi?= =?iso-8859-1?Q?hk//K+eXdH11Z4RKoWzcZ8lFGDfkYI1VnhkSuXVbYrcSolkm1SCKTIAiYg?= =?iso-8859-1?Q?ghofHWh7Ym4pPKhhSYjPVNdGXwFTRTf6I0t7P60dL1exrXz3+zTXEnhXXn?= =?iso-8859-1?Q?ueAsp32G7GoX0eS+3DBxbCKAVgjtpJ8arOPGXkCXqECqZgXTDqlNkcWd9O?= =?iso-8859-1?Q?fL8i2rQQkdKgmscWsGGaFUa+PmcjB+hjMiZZrEG4YVoK0ACA8xWLQOLDqU?= =?iso-8859-1?Q?qLE63sh/5vNuNxSN3aL5Vh+RfIGK6g4HDmQNXTw8oh8kzS4bZnfsYWqOw1?= =?iso-8859-1?Q?eU0ZTEdO745lvCg0lxytehbGjCHCNvBzPPiVHP/wdhRmxiI7YxSQrVb3wB?= =?iso-8859-1?Q?PIGSvEpbbKdkp9vHBIHk2oI4My0UGTS2aV9ly0O5QOKUjppShIKwPDfV6Y?= =?iso-8859-1?Q?t7uVjX0xG8gG0sBvKkVPUK40J+wsInVdWNjCcoidJtgazEiKmA+VFXyDNc?= =?iso-8859-1?Q?ItaMXynv52PcXGsRYSGj6ShuO2iiCnnCRL+/bcz3acqSofFYzG0kXSfERB?= =?iso-8859-1?Q?nRK5YNmDThHU3l2RnUsD/+x0szU/rFkYjIkdwTwt0rS/EyxX6T89CQ0Fis?= =?iso-8859-1?Q?f8KRdG3dIE1Pyr8+X22BSaOqheFKEKby9v2VLdhi5O8+G7D9vWIlKCjP+Z?= =?iso-8859-1?Q?DboPOMD+JK+PvYsATb1wTJ8ONoXemfdVYoiVs/uQNUVN9CnO91/jmM715d?= =?iso-8859-1?Q?TvNpj9eRvvy6o8cJrIZGS2zcJjGmbOS5P7jHgYCliCvaEHmkG7B18zu/as?= =?iso-8859-1?Q?cm2m1edZnvZa4O1hsZ2RXa5H1JxoSgWThhDj/xGVeFHrUex6we42XIcGzj?= =?iso-8859-1?Q?CO5CDH418qG5h1UtQUrbsWSCmQWzjYF9ELaB8qgExO9wnGmKgj9JPOb0EC?= =?iso-8859-1?Q?wQqEjNRGRKYdCwsvAL/FPzJH6IZ4LKtciU+1MrKDfVhakeGO2ChCKgpEdI?= =?iso-8859-1?Q?A+B4UWAwyVwyFQ8iCP/lBAUdubY0V8z6FeXN9FCxiu1j2//5fvQwfSd4wK?= =?iso-8859-1?Q?J/mCUXu1oNgqNbtMet2284oy5xSk2QgdbDKZXf9g+G3TnWo4xO2hM4g267?= =?iso-8859-1?Q?CJdMsmBLhuAbsHMGz5sXotfJPKaxZZzt/MDOwRTaBV4c9YlCts3F43PbQ2?= =?iso-8859-1?Q?p5Hnb61gH75T1yIIdFXcUIhWU4CRQtrHpQBOMuhVSjbmiXyVerZL9dv41V?= =?iso-8859-1?Q?el/6J6CMqqd+qhsnbREN5afeFZ481AhECC7YAbO2AVzVhOLp/vFMhGDKDL?= =?iso-8859-1?Q?lS01ehBLynsXbhj6rStaQ5WjI0hanZHVDgUEbAg6o9IdA12ROn4mbWB7uF?= =?iso-8859-1?Q?1C1Q=3D=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@freebsd.org MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 9b02922b-a2b1-438e-bdc6-08d9be555904 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2021 16:26:42.3736 (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: 6vve/Y3IEn426hYnvoXRPWzTvM0uX2s+7vwuE4T/FWTAt6mW3QmzfiuppZ/ULxBY4nCpgXo6ToCE4idoew4Gtw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQXPR01MB6075 X-Rspamd-Queue-Id: 4JCRjW3Q2mz3vW2 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=uoguelph.ca header.s=selector2 header.b=NKtiaXih; 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.67.55 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-4.86 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.987]; R_DKIM_ALLOW(-0.20)[uoguelph.ca:s=selector2]; FREEFALL_USER(0.00)[rmacklem]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; MIME_GOOD(-0.10)[text/plain]; NEURAL_HAM_LONG(-1.00)[-1.000]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; RCPT_COUNT_ONE(0.00)[1]; DWL_DNSWL_LOW(-1.00)[uoguelph.ca:dkim]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[uoguelph.ca:+]; DMARC_POLICY_ALLOW(-0.50)[uoguelph.ca,none]; RCVD_IN_DNSWL_NONE(0.00)[40.107.67.55:from]; NEURAL_HAM_SHORT(-0.87)[-0.872]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US]; RCVD_TLS_LAST(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.107.67.55:from] X-ThisMailContainsUnwantedMimeParts: N Hi,=0A= =0A= There are two problems with Allocate in the NFSv4.2 server in FreeBSD13:=0A= 1 - It uses the thread credentials instead of the ones for the RPC.=0A= 2 - It does not ensure that file changes are committed to stable storage.= =0A= These problems are fixed by commit f0c9847a6c47 in main, which added=0A= ioflag and cred arguments to VOP_ALLOCATE().=0A= =0A= I can think of 3 ways to fix Allocate in FreeBSD13:=0A= 1 - Apply a *hackish* patch like this:=0A= + savcred =3D p->td_ucred;=0A= + td->td_ucred =3D cred;=0A= do {=0A= olen =3D len;=0A= error =3D VOP_ALLOCATE(vp, &off, &len);=0A= if (error =3D=3D 0 && len > 0 && olen > len)=0A= maybe_yield();=0A= } while (error =3D=3D 0 && len > 0 && olen > len);=0A= + p->td_ucred =3D savcred;=0A= if (error =3D=3D 0 && len > 0)=0A= error =3D NFSERR_IO;=0A= + if (error =3D=3D 0)=0A= + error =3D VOP_FSYNC(vp, MNT_WAIT, p);=0A= The worst part of it is temporarily setting td_ucred to cred.=0A= =0A= 2 - MFC'ng commit f0c9847a6c47. Normally changes to the=0A= VOP/VFS are not MFC'd. However, in this case, it might be=0A= ok to do so, since it is unlikely there is an out of source tree=0A= file system with a custom VOP_ALLOCATE() method?=0A= =0A= 3 - Just disable it. Currently it is disabled by default and it=0A= could just be wired down disabled.=0A= Allocate is not that useful, since ZFS does not support it.=0A= =0A= As an aside to this, the IETF NFSv4 working group seems to=0A= have agreed that NFS4ERR_NOTSUPP can be returned by a=0A= NFSv4.2 server on a 'per file system basis" instead of globally,=0A= since the Linux knfsd already does this.=0A= --> As such, Allocate can be enabled by default in main and=0A= could be enabled by default in FreeBSD13, if #1 or #2 was=0A= done.=0A= --> It still would not work for ZFS exports.=0A= =0A= So, what do you think is the preferred alternative?=0A= =0A= rick=0A=