From owner-freebsd-fs Sun Apr 15 6:58:18 2001 Delivered-To: freebsd-fs@freebsd.org Received: from relay.butya.kz (butya-gw.butya.kz [212.154.129.94]) by hub.freebsd.org (Postfix) with ESMTP id 6457037B443 for ; Sun, 15 Apr 2001 06:58:13 -0700 (PDT) (envelope-from bp@butya.kz) Received: by relay.butya.kz (Postfix, from userid 1000) id A968828AD4; Sun, 15 Apr 2001 20:58:10 +0700 (ALMST) Received: from localhost (localhost [127.0.0.1]) by relay.butya.kz (Postfix) with ESMTP id 9FE4628ACB for ; Sun, 15 Apr 2001 20:58:10 +0700 (ALMST) Date: Sun, 15 Apr 2001 20:58:10 +0700 (ALMST) From: Boris Popov To: freebsd-fs@freebsd.org Subject: An unlock VOP_CLOSE() Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-595464233-987343090=:38342" Sender: owner-freebsd-fs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-595464233-987343090=:38342 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello, While working on various filesystems I've noticed that VOP_CLOSE() vnode operation invoked on the non-locked vnode, and sometimes on the locked (from vclean() notably). This may not cause any problems for local fs'es like ufs and its family, but makes consistency problems for network filesystems which may flush data and issue network calls inside of the VOP_CLOSE operation. Of course, it is possible to create an additional lock in the specific filesystem and track it across all VOPs, but probably use of just VOP_LOCK()/VOP_UNLOCK() pair would be sufficient. Attached there is a patch which does this in the above way. Comments, suggestions ? P.S. sometime read/write lock should be separated from the rest of locks... -- Boris Popov http://www.butya.kz/~bp/ --0-595464233-987343090=:38342 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="vop_close.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="vop_close.diff" SW5kZXg6IHZub2RlX2lmLnNyYw0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K UkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9rZXJuL3Zub2RlX2lmLnNy Yyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzkNCmRpZmYgLXUgLXIxLjM5 IHZub2RlX2lmLnNyYw0KLS0tIHZub2RlX2lmLnNyYwkyMDAxLzAzLzE5IDA1 OjQ0OjE0CTEuMzkNCisrKyB2bm9kZV9pZi5zcmMJMjAwMS8wNC8xNSAxMjo1 MzozNw0KQEAgLTEzMCw3ICsxMzAsNyBAQA0KIH07DQogDQogIw0KLSMlIGNs b3NlCXZwCVUgVSBVDQorIyUgY2xvc2UJdnAJTCBMIEwNCiAjDQogdm9wX2Ns b3NlIHsNCiAJSU4gc3RydWN0IHZub2RlICp2cDsNCkluZGV4OiB2ZnNfdm5v cHMuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21l L25jdnMvc3JjL3N5cy9rZXJuL3Zmc192bm9wcy5jLHYNCnJldHJpZXZpbmcg cmV2aXNpb24gMS4xMTMNCmRpZmYgLXUgLXIxLjExMyB2ZnNfdm5vcHMuYw0K LS0tIHZmc192bm9wcy5jCTIwMDEvMDMvMjYgMTI6NDU6MzUJMS4xMTMNCisr KyB2ZnNfdm5vcHMuYwkyMDAxLzA0LzE1IDEzOjAxOjAxDQpAQCAtMjMwLDEw ICsyMzAsMTEgQEANCiB7DQogCWludCBlcnJvcjsNCiANCisJdm5fbG9jayh2 cCwgTEtfRVhDTFVTSVZFIHwgTEtfTk9QQVVTRSB8IExLX1JFVFJZLCBwKTsN CiAJaWYgKGZsYWdzICYgRldSSVRFKQ0KIAkJdnAtPnZfd3JpdGVjb3VudC0t Ow0KIAllcnJvciA9IFZPUF9DTE9TRSh2cCwgZmxhZ3MsIGNyZWQsIHApOw0K LQl2cmVsZSh2cCk7DQorCXZwdXQodnApOw0KIAlyZXR1cm4gKGVycm9yKTsN CiB9DQogDQo= --0-595464233-987343090=:38342-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-fs" in the body of the message