[PATCH] RD refcounting and ejecting

James Mastros (root@jennifer-unix.dyn.ml.org)
Sat, 18 Apr 1998 16:23:38 -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

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