From owner-freebsd-fs@freebsd.org Sun Apr 23 22:56:43 2017 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17208D4D1FB for ; Sun, 23 Apr 2017 22:56:43 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-TO1-obe.outbound.protection.outlook.com (mail-eopbgr670046.outbound.protection.outlook.com [40.107.67.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C40F91949 for ; Sun, 23 Apr 2017 22:56:42 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM (10.165.218.133) by YTXPR01MB0192.CANPRD01.PROD.OUTLOOK.COM (10.165.218.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13; Sun, 23 Apr 2017 22:56:40 +0000 Received: from YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM ([10.165.218.133]) by YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM ([10.165.218.133]) with mapi id 15.01.1047.019; Sun, 23 Apr 2017 22:56:40 +0000 From: Rick Macklem To: "freebsd-fs@freebsd.org" Subject: optionally enable the NFSv4 server to allow write opens for reading Thread-Topic: optionally enable the NFSv4 server to allow write opens for reading Thread-Index: AQHSvIQ8BVI5Y70azEem9+L2n0BOzg== Date: Sun, 23 Apr 2017 22:56:40 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: freebsd.org; dkim=none (message not signed) header.d=none;freebsd.org; dmarc=none action=none header.from=uoguelph.ca; x-microsoft-exchange-diagnostics: 1; YTXPR01MB0192; 7:jve8rABTVgP3RsXsJubhX/r57NDqxlp7YWoMJBa4pshxcgxPbdfMIYbbC0nAz59flZ6X+H3CqZhlrhsqb9+8Nb5NukM1lTIpFCt3XXTxOQb7wreQ+8dK3Cno7scb9PXpvy9UBKPTQ4wyLf2ONl+ha+ggvfUEbSYzZuV85CrLcqYN7Sj/+zTaPJ5+2CSswMVzdXgh7HE5DjYyFoBMKlLL6U5I1LjLQkRBs3cXuJtUeHl0pYtwAs5vD95wJjdLF7LHQQrQoYOPiYV4unRaYIjjDkKzvKbXS7hPBDV6t+9A6QW5cI7iZSCHAvNKnBG8llMIRp9H2poQpuwMyFHIn5HTjQ== x-ms-office365-filtering-correlation-id: daa83340-4f45-443f-1b6b-08d48a9c012c x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:YTXPR01MB0192; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(158342451672863); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(102415395)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123562025)(201703131423075)(201702281529075)(201702281528075)(201703061421075)(20161123560025)(20161123555025)(20161123564025)(6072148); SRVR:YTXPR01MB0192; BCL:0; PCL:0; RULEID:; SRVR:YTXPR01MB0192; x-forefront-prvs: 0286D7B531 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39400400002)(39840400002)(39850400002)(39450400003)(39410400002)(55016002)(53936002)(2501003)(6916009)(9686003)(7696004)(5890100001)(77096006)(2906002)(6506006)(74316002)(5660300001)(305945005)(54356999)(122556002)(99936001)(2900100001)(50986999)(33656002)(2351001)(86362001)(3660700001)(74482002)(189998001)(110136004)(81166006)(8936002)(8676002)(38730400002)(3280700002)(25786009)(102836003); DIR:OUT; SFP:1101; SCL:1; SRVR:YTXPR01MB0192; H:YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; MLV:sfv; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_YTXPR01MB01897D428DD829C7A9DEC284DD1C0YTXPR01MB0189CANP_" MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2017 22:56:40.3530 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR01MB0192 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Apr 2017 22:56:43 -0000 --_002_YTXPR01MB01897D428DD829C7A9DEC284DD1C0YTXPR01MB0189CANP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable When a client such as the FreeBSD one does a write of a partial block, it w= ill first read the block in. If the file is opened Write only over NFSv4, the client = can try using this open for the Read. If the server (such as the FreeBSD one in hea= d, etc) doesn't allow this, it can reply with NFSERR_OPENMODE and the client must f= ind another way to do the Read, such as using what are called a "special statei= d". The attached patch modifies the FreeBSD NFSv4 server to allow use of a Writ= e Open for Read operations (this is allowed by the RFCs). Does this sound reasonable to others to do? rick ps: You can review/test the patch, but I am mainly wondering if doing this = seems like a good idea to others?= --_002_YTXPR01MB01897D428DD829C7A9DEC284DD1C0YTXPR01MB0189CANP_ Content-Type: application/octet-stream; name="writeopenforread.patch" Content-Description: writeopenforread.patch Content-Disposition: attachment; filename="writeopenforread.patch"; size=1055; creation-date="Sun, 23 Apr 2017 22:56:35 GMT"; modification-date="Sun, 23 Apr 2017 22:56:35 GMT" Content-Transfer-Encoding: base64 LS0tIGZzL25mc3NlcnZlci9uZnNfbmZzZHN0YXRlLmMub3JpZwkyMDE3LTA0LTE1IDEwOjU4OjM4 LjA0MzM5MDAwMCAtMDQwMAorKysgZnMvbmZzc2VydmVyL25mc19uZnNkc3RhdGUuYwkyMDE3LTA0 LTIzIDA5OjU5OjMwLjY3ODU5MjAwMCAtMDQwMApAQCAtNzUsNiArNzUsMTEgQEAgU1lTQ1RMX0lO VChfdmZzX25mc2QsIE9JRF9BVVRPLCB3cml0ZWRlbAogICAgICZuZnNydl93cml0ZWRlbGVnaWZw b3MsIDAsCiAgICAgIklzc3VlIGEgd3JpdGUgZGVsZWdhdGlvbiBmb3IgcmVhZCBvcGVucyBpZiBw b3NzaWJsZSIpOwogCitzdGF0aWMgaW50CW5mc3J2X2FsbG93cmVhZGZvcndyaXRlb3BlbiA9IDE7 CitTWVNDVExfSU5UKF92ZnNfbmZzZCwgT0lEX0FVVE8sIGFsbG93cmVhZGZvcndyaXRlb3Blbiwg Q1RMRkxBR19SVywKKyAgICAmbmZzcnZfYWxsb3dyZWFkZm9yd3JpdGVvcGVuLCAwLAorICAgICJB bGxvdyBSZWFkcyB0byBiZSBkb25lIHdpdGggV3JpdGUgQWNjZXNzIFN0YXRlSURzIik7CisKIC8q CiAgKiBIYXNoIGxpc3RzIGZvciBuZnMgVjQuCiAgKi8KQEAgLTE4NzMsNyArMTg3OCw4IEBAIHRy eWFnYWluOgogCQkgICAgICAgbXlzdHAtPmxzX2ZsYWdzICYgTkZTTENLX0FDQ0VTU0JJVFMpKSB8 fAogCQkgICAgKChuZXdfc3RwLT5sc19mbGFncyAmIChORlNMQ0tfQ0hFQ0t8TkZTTENLX1JFQURB Q0NFU1MpKSA9PQogCQkgICAgICAoTkZTTENLX0NIRUNLIHwgTkZTTENLX1JFQURBQ0NFU1MpICYm Ci0JCSAgICAgIShteXN0cC0+bHNfZmxhZ3MgJiBORlNMQ0tfUkVBREFDQ0VTUykpIHx8CisJCSAg ICAgIShteXN0cC0+bHNfZmxhZ3MgJiBORlNMQ0tfUkVBREFDQ0VTUykgJiYKKwkJICAgICBuZnNy dl9hbGxvd3JlYWRmb3J3cml0ZW9wZW4gPT0gMCkgfHwKIAkJICAgICgobmV3X3N0cC0+bHNfZmxh Z3MgJiAoTkZTTENLX0NIRUNLfE5GU0xDS19XUklURUFDQ0VTUykpID09CiAJCSAgICAgIChORlNM Q0tfQ0hFQ0sgfCBORlNMQ0tfV1JJVEVBQ0NFU1MpICYmCiAJCSAgICAgIShteXN0cC0+bHNfZmxh Z3MgJiBORlNMQ0tfV1JJVEVBQ0NFU1MpKSkgewo= --_002_YTXPR01MB01897D428DD829C7A9DEC284DD1C0YTXPR01MB0189CANP_--