[PATCH] RD refcounting and ejecting

James Mastros (root@jennifer-unix.dyn.ml.org)
Sun, 19 Apr 1998 17:33:49 -0400 (EDT)


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.

--8323328-1176136729-892931018=:3310
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.3.96.980419173059.327E@jennifer-unix.dyn.ml.org>

Hmm... I sent this out over 24 hours ago, and havn't gotten it back yet,
so I'm going to assume that vger (or the exploder de jure) ate it for
dinner last night. (Block devices: yummy!)

--- SNIP ---

This patch should allow the CDROMEJECT/FDEJECT ioctl to work on ramdisk
(both init- and normal) block devices. The normal ramdisks have been
checked, the inital ramdisks have not, but the code is nearly identical.
BTW -- Two FIXMEs with this patch:
1) The initialiastion of the rd_users array is like this:
static int rd_users[NUM_RAMDISKS] = { [0 ... NUM_RAMDISKS-1] = 0 };
Is this neccessary (IE are static arrays initialised to 0)? Is there
a portable way of doing it? (The above ... synthax is a gccisim.)
2) The BLKGETSIZE ioctl on initrds uses initrd_end-initrd_start to find
the size of the initrd. Is this kosher? (IE do those varibles meen
what I think they do? If so, why do we need the _start?)

Hopefully, this will help with chrooted initrd setups -- I can't really
say, since I don't use initrds. Or, for that matter, regular rds. This
was done for pure hack value, I will probably never use it myself.
If you find bugs, *please* tell me. If you find a use for this, please
tell me. If you don't really care, please mail me. Please mail me -- I'm
bored. <G>

-=- James Mastros

-- 
Where do you want to go today?
We might support that sometime next year.
	-=- Microsoft
(But I doubt it.)
	-=- Me

--8323328-1176136729-892931018=:3310 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="rd_refcount+eject.diff" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.3.96.980418162338.3310B@jennifer-unix.dyn.ml.org> Content-Description: rd_refcount+eject.diff

LS0tIGxpbnV4L2RyaXZlcnMvYmxvY2svcmQuYy5vcmlnCVNhdCBBcHIgMTgg MTM6NTk6MDAgMTk5OA0KKysrIGxpbnV4L2RyaXZlcnMvYmxvY2svcmQuYwlT YXQgQXByIDE4IDE2OjExOjUzIDE5OTgNCkBAIC0zOCw3ICszOCwxNCBAQA0K ICAqDQogICogQWRkIHN1cHBvcnQgZm9yIGZzIGltYWdlcyBzcGxpdCBhY3Jv c3MgPjEgZGlzaywgUGF1bCBHb3J0bWFrZXIsIE1hciAnOTgNCiAgKg0KKyAq IFVzYWdlIGNvdW50aW5nIGZvciByYW1kaXNrcywgYW5kICJzYWZlIiBlamVj dCBpb2N0bCAoSUUgd2lsbCByZWZ1c2UgdG8gZWplY3QNCisgKiB0aGUgZGlz ayBpZiBhIHByb2Nlc3MgaGFzIGl0IG9wZW4gb3IgaXQgaXMgbW91bnRlZCku ICANCisgKiBOQjogZWplY3Q9ZnJlZSBidWZmZXJzLiAgU2VlbXMgbGlrZSBh IGZhaXJseSBjbG9zZSBtYXRjaCB0byBtZSwgYW5kIGF2b2lkcyANCisgKiB3 cml0aW5nIHNwZWNpYWwtcHVycG9zZSB1c2Vyc3BhY2UgdG9vbCBqdXN0IGZv ciB0aGlzLiAgRkRFSkVDVCBhbmQgDQorICogQ0RST01FSkVDVCBzdXBvcnRl ZCBlcXV2bGVudGx5Lg0KKyAqIAktPS0gSmFtZXMgTWFzdHJvcywgdGhlb3Ji QGluYW1lLmNvbSwgQXByICc5OC4NCiAgKi8NCisjdW5kZWYgUkRfREVCVUcN CiANCiAjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+DQogI2luY2x1ZGUgPGxp bnV4L3NjaGVkLmg+DQpAQCAtNTUsNiArNjIsNyBAQA0KICNpbmNsdWRlIDxs aW51eC9mZC5oPg0KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCiAjaW5j bHVkZSA8bGludXgvaW5pdC5oPg0KKyNpbmNsdWRlIDxsaW51eC9jZHJvbS5o PiAvKiBDRFJPTUVKRUNUICovDQogDQogI2luY2x1ZGUgPGFzbS9zeXN0ZW0u aD4NCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4NCkBAIC05MCw2ICs5OCw4 IEBADQogDQogc3RhdGljIGludCByZF9sZW5ndGhbTlVNX1JBTURJU0tTXTsN CiBzdGF0aWMgaW50IHJkX2Jsb2Nrc2l6ZXNbTlVNX1JBTURJU0tTXTsNCisv KiBGSVhNRSAtLSBJcyB0aGVyZSBhIHBvcnRhYmxlIHdheSB0byBkbyB0aGlz PyAqLw0KK3N0YXRpYyBpbnQgcmRfdXNlcnNbTlVNX1JBTURJU0tTXSA9IHsg WzAgLi4uIE5VTV9SQU1ESVNLUy0xXSA9IDAgfTsNCiANCiAvKg0KICAqIFBh cmFtZXRlcnMgZm9yIHRoZSBib290LWxvYWRpbmcgb2YgdGhlIHJhbWRpc2su ICBUaGVzZSBhcmUgc2V0IGJ5DQpAQCAtMTY3LDYgKzE3NywxNSBAQA0KIAkJ CWlmICghc3VzZXIoKSkgcmV0dXJuIC1FQUNDRVM7DQogCQkJaW52YWxpZGF0 ZV9idWZmZXJzKGlub2RlLT5pX3JkZXYpOw0KIAkJCWJyZWFrOw0KKwkgCWNh c2UgQ0RST01FSkVDVDoNCisJIAljYXNlIEZERUpFQ1Q6DQorCQkJLyogT25l IHVzZXIgLS0gd2UncmUgb3BlbiBieSB0aGUgaW9jdGxlci4gKi8NCisJCQlp ZiAocmRfdXNlcnNbTUlOT1IoaW5vZGUtPmlfcmRldildPT0xKSB7DQorCQkJ CWludmFsaWRhdGVfYnVmZmVycyhpbm9kZS0+aV9yZGV2KTsNCisJCQkJcmV0 dXJuIDA7DQorCQkJfSBlbHNlIHsNCisJCQkJcmV0dXJuIC1FQlVTWTsNCisJ CQl9DQogICAgICAgICAgCWNhc2UgQkxLR0VUU0laRTogICAvKiBSZXR1cm4g ZGV2aWNlIHNpemUgKi8NCiAJCQlpZiAoIWFyZykgIHJldHVybiAtRUlOVkFM Ow0KIAkJCWVyciA9IHZlcmlmeV9hcmVhKFZFUklGWV9XUklURSwgKGxvbmcg KikgYXJnLA0KQEAgLTIxMiw2ICsyMzEsNDQgQEANCiAJcmV0dXJuIDA7DQog fQ0KIA0KK3N0YXRpYyBpbnQgaW5pdHJkX2lvY3RsKHN0cnVjdCBpbm9kZSAq aW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBsb25nIGFyZykNCit7DQorCWludCBlcnI7DQorCQ0KKwlpZiAo IWlub2RlIHx8ICFpbm9kZS0+aV9yZGV2KSAJDQorCQlyZXR1cm4gLUVJTlZB TDsNCisNCisJc3dpdGNoIChjbWQpIHsNCisJCWNhc2UgQkxLRkxTQlVGOg0K KwkJCWlmICghc3VzZXIoKSkgcmV0dXJuIC1FQUNDRVM7DQorCQkJaW52YWxp ZGF0ZV9idWZmZXJzKGlub2RlLT5pX3JkZXYpOw0KKwkJCWJyZWFrOw0KKwkg CWNhc2UgQ0RST01FSkVDVDoNCisJIAljYXNlIEZERUpFQ1Q6DQorCQkJLyog T25lIHVzZXIgLS0gd2UncmUgb3BlbiBieSB0aGUgaW9jdGxlci4gKi8NCisJ CQlpZiAoaW5pdHJkX3VzZXJzPT0xKSB7DQorCQkJCWludmFsaWRhdGVfYnVm ZmVycyhpbm9kZS0+aV9yZGV2KTsNCisJCQkJcmV0dXJuIDA7DQorCQkJfSBl bHNlIHsNCisJCQkJcmV0dXJuIC1FQlVTWTsNCisJCQl9DQorICAgICAgICAg CWNhc2UgQkxLR0VUU0laRTogICAvKiBSZXR1cm4gZGV2aWNlIHNpemUgKi8N CisJCQlpZiAoIWFyZykgIHJldHVybiAtRUlOVkFMOw0KKwkJCWVyciA9IHZl cmlmeV9hcmVhKFZFUklGWV9XUklURSwgKGxvbmcgKikgYXJnLA0KKwkJCQkJ ICBzaXplb2YobG9uZykpOw0KKwkJCWlmIChlcnIpDQorCQkJCXJldHVybiBl cnI7DQorCQkJLyogRklYTUUgKi8NCisJCQlwdXRfdXNlcigoaW5pdHJkX2Vu ZC1pbml0cmRfc3RhcnQpIC8gNTEyLCANCisJCQkJIChsb25nICopIGFyZyk7 DQorCQkJcmV0dXJuIDA7DQorCQkJDQorCQlkZWZhdWx0Og0KKwkJCWJyZWFr Ow0KKwl9Ow0KKw0KKwlyZXR1cm4gMDsNCit9DQogDQogc3RhdGljIHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgaW5pdHJkX2ZvcHMgPSB7DQogCU5VTEwsCQkv KiBsc2VlayAqLw0KQEAgLTIxOSw3ICsyNzYsNyBAQA0KIAlOVUxMLAkJLyog d3JpdGUgKi8NCiAJTlVMTCwJCS8qIHJlYWRkaXIgKi8NCiAJTlVMTCwJCS8q IHBvbGwgKi8NCi0JTlVMTCwgCQkvKiBpb2N0bCAqLw0KKwlpbml0cmRfaW9j dGwsIAkvKiBpb2N0bCAqLw0KIAlOVUxMLAkJLyogbW1hcCAqLw0KIAlOVUxM LAkJLyogb3BlbiAqLw0KIAlpbml0cmRfcmVsZWFzZSwJLyogcmVsZWFzZSAq Lw0KQEAgLTI0MywxOCArMzAwLDMwIEBADQogCWlmIChERVZJQ0VfTlIoaW5v ZGUtPmlfcmRldikgPj0gTlVNX1JBTURJU0tTKQ0KIAkJcmV0dXJuIC1FTlhJ TzsNCiANCisjaWZkZWYgUkRfREVCVUcNCisJcHJpbnRrKCJyZF9vcGVuIC0t IHJkX3VzZXJzWyVkXT0lZFxuIiwgDQorCSAgICAgICBERVZJQ0VfTlIoaW5v ZGUtPmlfcmRldiksDQorCSAgICAgICByZF91c2Vyc1tERVZJQ0VfTlIoaW5v ZGUtPmlfcmRldildKTsNCisjZW5kaWYNCisJcmRfdXNlcnNbREVWSUNFX05S KGlub2RlLT5pX3JkZXYpXSsrOw0KKwkNCiAJTU9EX0lOQ19VU0VfQ09VTlQ7 DQogDQogCXJldHVybiAwOw0KIH0NCiANCi0jaWZkZWYgTU9EVUxFDQogc3Rh dGljIGludCByZF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1 Y3QgZmlsZSAqIGZpbHApDQogew0KKyNpZmRlZiBNT0RVTEUNCiAJTU9EX0RF Q19VU0VfQ09VTlQ7DQorI2VuZGlmDQorCXJkX3VzZXJzW01JTk9SKGlub2Rl LT5pX3JkZXYpXS0tOw0KKyNpZmRlZiBSRF9ERUJVRw0KKwlwcmludGsoInJk X3JlbGVhc2UgLS0gcmRfdXNlcnNbJWRdPSVkXG4iLCBNSU5PUihpbm9kZS0+ aV9yZGV2KSwNCisJICAgICAgIHJkX3VzZXJzW01JTk9SKGlub2RlLT5pX3Jk ZXYpXSk7DQorI2VuZGlmDQogCXJldHVybiAwOw0KIH0NCi0jZW5kaWYNCiAN CiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmZF9mb3BzID0gew0K IAlOVUxMLAkJLyogbHNlZWsgLSBkZWZhdWx0ICovDQpAQCAtMjY1LDEyICsz MzQsOCBAQA0KIAlyZF9pb2N0bCwgCS8qIGlvY3RsICovDQogCU5VTEwsCQkv KiBtbWFwICovDQogCXJkX29wZW4sCS8qIG9wZW4gKi8NCi0jaWZuZGVmIE1P RFVMRQ0KLQlOVUxMLAkJLyogbm8gc3BlY2lhbCByZWxlYXNlIGNvZGUuLi4g Ki8NCi0jZWxzZQ0KLQlyZF9yZWxlYXNlLAkvKiBtb2R1bGUgbmVlZHMgdG8g ZGVjcmVtZW50IHVzZSBjb3VudCAqLw0KLSNlbmRpZg0KLQlibG9ja19mc3lu YwkJLyogZnN5bmMgKi8gDQorCXJkX3JlbGVhc2UsCS8qIHJlbGVhc2UgKi8N CisJYmxvY2tfZnN5bmMJLyogZnN5bmMgKi8gDQogfTsNCiANCiAvKiBUaGlz IGlzIHRoZSByZWdpc3RyYXRpb24gYW5kIGluaXRpYWxpemF0aW9uIHNlY3Rp b24gb2YgdGhlIHJhbWRpc2sgZHJpdmVyICovDQo= --8323328-1176136729-892931018=:3310--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu