[PATCH] fs:jffs2: fix deadlock between GC and inode creation
Lucas Martins Alves <[email protected]> Wed, 29 Jul 2026 11:47:51 +0000
| Newsgroups | org.infradead.lists.linux-mtd,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
RnJvbTogTHVjYXMgTWFydGlucyBBbHZlcyA8bHVjYXMuYWx2ZXNAbHVtYWwyMS5jb20uYnI+Cgpq ZmZzMl9kb19uZXdfaW5vZGUoKSBtYXJrZWQgdGhlIG5ld2x5IGFsbG9jYXRlZCBpbm9kZSBjYWNo ZSBhcwpJTk9fU1RBVEVfUFJFU0VOVCBiZWZvcmUgdGhlIGlub2RlIHdhcyBhY3R1YWxseSBidWls dC4gQSBjb25jdXJyZW50CmdhcmJhZ2UgY29sbGVjdCBwYXNzIGNvdWxkIHBpY2sgdGhhdCBpbm9k ZSB1cCBhbmQgY2FsbCBpZ2V0X2xvY2tlZCgpLAp3aGljaCBibG9ja3Mgb24gdGhlIGlub2RlIHN0 aWxsIGxvY2tlZCBieSB0aGUgY3JlYXRpbmcgdGFzay4gVGhhdCB0YXNrCmluIHR1cm4gd2FpdHMg Zm9yIGFsbG9jX3NlbSwgd2hpY2ggaXMgaGVsZCBieSBHQywgc28gYm90aCBzaWRlcyBkZWFkbG9j awphbmQgbmVpdGhlciBvcGVyYXRpb24gY2FuIGNvbXBsZXRlLgoKSW50cm9kdWNlIGEgbmV3IElO T19TVEFURV9DUkVBVElORyBzdGF0ZSBhbmQgdXNlIGl0IGluCmpmZnMyX2RvX25ld19pbm9kZSgp IGZvciB0aGUgd2hvbGUgd2luZG93IGluIHdoaWNoIHRoZSBpbm9kZSBpcyB1bmRlcgpjb25zdHJ1 Y3Rpb24uIFRoZSBzdGF0ZSBpcyBtb3ZlZCB0byBJTk9fU1RBVEVfUFJFU0VOVCBvbmx5IGFmdGVy CmRfaW5zdGFudGlhdGVfbmV3KCkgaW4gamZmczJfY3JlYXRlKCksIGpmZnMyX3N5bWxpbmsoKSwg amZmczJfbWtkaXIoKQphbmQgamZmczJfbWtub2QoKS4KClRlYWNoIHRoZSBnYXJiYWdlIGNvbGxl Y3RvciBhYm91dCB0aGUgbmV3IHN0YXRlLiBJbiB0aGUgQ1JDIGNoZWNrIHBoYXNlCnN1Y2ggaW5v ZGVzIGFyZSBub3Qgc2VsZWN0ZWQsIGFuZCBpbiBib3RoIHRoZSBjaGVjayBhbmQgdGhlIG1haW4g aW5vZGUKc2VsZWN0aW9uIHBhdGhzIEdDIG5vdyBkcm9wcyBhbGxvY19zZW0sIHNsZWVwcyBvbiBp bm9jYWNoZV93cSBhbmQKcmV0dXJucyB0byByZXN0YXJ0LCBpbnN0ZWFkIG9mIHRyeWluZyB0byBp Z2V0KCkgYW4gaW5vZGUgdGhhdCBpcyBub3QKcmVhZHkgeWV0LgoKQWxzbyBhY2NlcHQgSU5PX1NU QVRFX0NSRUFUSU5HIGFzIGEgdmFsaWQgc3RhdGUgaW4KamZmczJfd2J1Zl9yZWNvdmVyKCksIHNv IHRoZSByZWNvdmVyeSBwYXRoIG5vIGxvbmdlciBoaXRzIHRoZSBCVUcoKSBmb3IKaW5vZGVzIGJl aW5nIGNyZWF0ZWQsIGFuZCBoYW5kbGUgaXQgaW4gamZmczJfZG9fcmVhZF9pbm9kZSgpIHRvZ2V0 aGVyCndpdGggdGhlIG90aGVyIGluLWNvcmUgc3RhdGVzIHRoYXQgbXVzdCBuZXZlciBiZSByZWFk IGFnYWluLgoKU2lnbmVkLW9mZi1ieTogTHVjYXMgTWFydGlucyBBbHZlcyA8bHVjYXMuYWx2ZXNA bHVtYWwyMS5jb20uYnI+Ci0tLQogZnMvamZmczIvZGlyLmMgICAgICAgfCAgNCArKysrCiBmcy9q ZmZzMi9nYy5jICAgICAgICB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBmcy9q ZmZzMi9ub2RlbGlzdC5oICB8ICAxICsKIGZzL2pmZnMyL3JlYWRpbm9kZS5jIHwgIDEgKwogZnMv amZmczIvd2J1Zi5jICAgICAgfCAgMyArKy0KIGZzL2pmZnMyL3dyaXRlLmMgICAgIHwgIDYgKysr KystCiA2IGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZnMvamZmczIvZGlyLmMgYi9mcy9qZmZzMi9kaXIuYwppbmRleCBjNDA4OGMz YjRhYzAuLjNhYmUyOGQwY2I5NSAxMDA2NDQKLS0tIGEvZnMvamZmczIvZGlyLmMKKysrIGIvZnMv amZmczIvZGlyLmMKQEAgLTIxNiw2ICsyMTYsNyBAQCBzdGF0aWMgaW50IGpmZnMyX2NyZWF0ZShz dHJ1Y3QgbW50X2lkbWFwICppZG1hcCwgc3RydWN0IGlub2RlICpkaXJfaSwKIAkJICBmLT5pbm9j YWNoZS0+cGlub19ubGluaywgaW5vZGUtPmlfbWFwcGluZy0+bnJwYWdlcyk7CiAKIAlkX2luc3Rh bnRpYXRlX25ldyhkZW50cnksIGlub2RlKTsKKwlqZmZzMl9zZXRfaW5vY2FjaGVfc3RhdGUoYywg Zi0+aW5vY2FjaGUsIElOT19TVEFURV9QUkVTRU5UKTsKIAlyZXR1cm4gMDsKIAogIGZhaWw6CkBA IC00NDAsNiArNDQxLDcgQEAgc3RhdGljIGludCBqZmZzMl9zeW1saW5rIChzdHJ1Y3QgbW50X2lk bWFwICppZG1hcCwgc3RydWN0IGlub2RlICpkaXJfaSwKIAlqZmZzMl9jb21wbGV0ZV9yZXNlcnZh dGlvbihjKTsKIAogCWRfaW5zdGFudGlhdGVfbmV3KGRlbnRyeSwgaW5vZGUpOworCWpmZnMyX3Nl dF9pbm9jYWNoZV9zdGF0ZShjLCBmLT5pbm9jYWNoZSwgSU5PX1NUQVRFX1BSRVNFTlQpOwogCXJl dHVybiAwOwogCiAgZmFpbDoKQEAgLTU4Niw2ICs1ODgsNyBAQCBzdGF0aWMgc3RydWN0IGRlbnRy eSAqamZmczJfbWtkaXIgKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgaW5vZGUgKmRp cl9pLAogCWpmZnMyX2NvbXBsZXRlX3Jlc2VydmF0aW9uKGMpOwogCiAJZF9pbnN0YW50aWF0ZV9u ZXcoZGVudHJ5LCBpbm9kZSk7CisJamZmczJfc2V0X2lub2NhY2hlX3N0YXRlKGMsIGYtPmlub2Nh Y2hlLCBJTk9fU1RBVEVfUFJFU0VOVCk7CiAJcmV0dXJuIE5VTEw7CiAKICBmYWlsOgpAQCAtNzY0 LDYgKzc2Nyw3IEBAIHN0YXRpYyBpbnQgamZmczJfbWtub2QgKHN0cnVjdCBtbnRfaWRtYXAgKmlk bWFwLCBzdHJ1Y3QgaW5vZGUgKmRpcl9pLAogCWpmZnMyX2NvbXBsZXRlX3Jlc2VydmF0aW9uKGMp OwogCiAJZF9pbnN0YW50aWF0ZV9uZXcoZGVudHJ5LCBpbm9kZSk7CisJamZmczJfc2V0X2lub2Nh Y2hlX3N0YXRlKGMsIGYtPmlub2NhY2hlLCBJTk9fU1RBVEVfUFJFU0VOVCk7CiAJcmV0dXJuIDA7 CiAKICBmYWlsOgpkaWZmIC0tZ2l0IGEvZnMvamZmczIvZ2MuYyBiL2ZzL2pmZnMyL2djLmMKaW5k ZXggMWI4MzNiYmZmY2Y1Li5hYWJmOTZmN2JiZDcgMTAwNjQ0Ci0tLSBhL2ZzL2pmZnMyL2djLmMK KysrIGIvZnMvamZmczIvZ2MuYwpAQCAtMTYxLDcgKzE2MSw4IEBAIGludCBqZmZzMl9nYXJiYWdl X2NvbGxlY3RfcGFzcyhzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYykKIAkJCQkJY29udGludWU7CiAK IAkJCQlpZiAoaWMtPnN0YXRlICE9IElOT19TVEFURV9DSEVDS0VEQUJTRU5UICYmCi0JCQkJICAg IGljLT5zdGF0ZSAhPSBJTk9fU1RBVEVfUFJFU0VOVCkKKwkJCQkgICAgaWMtPnN0YXRlICE9IElO T19TVEFURV9QUkVTRU5UICYmCisJCQkJICAgIGljLT5zdGF0ZSAhPSBJTk9fU1RBVEVfQ1JFQVRJ TkcpCiAJCQkJCWdvdG8gZ290X25leHQ7IC8qIHdpdGggaW5vY2FjaGVfbG9jayBoZWxkICovCiAK IAkJCQlqZmZzMl9kYmcoMSwgIlNraXBwaW5nIGlubyAjJXUgYWxyZWFkeSBjaGVja2VkXG4iLApA QCAtMjA4LDYgKzIwOSwxOSBAQCBpbnQgamZmczJfZ2FyYmFnZV9jb2xsZWN0X3Bhc3Moc3RydWN0 IGpmZnMyX3NiX2luZm8gKmMpCiAJCQlzcGluX3VubG9jaygmYy0+aW5vY2FjaGVfbG9jayk7CiAJ CQlCVUcoKTsKIAorCQljYXNlIElOT19TVEFURV9DUkVBVElORzoKKwkJCS8qIFdlIGNhbid0IHBy b2Nlc3MgdGhpcyBpbm9kZSB3aGlsZSBpdCBpcyBiZWluZyBjcmVhdGVkCisJCQkgICB0byBhdm9p ZCBhIGRlYWRsb2NrIGNvbmRpdGlvbiBiZWNhdXNlIHRoZSBmdW5jdGlvbgorCQkJICAgaWdldF9s b2NrZWQoKSB3aWxsIHRyeSB0byBsb2NrIHRoZSBpbm9kZSB0byBnZXQgaXQuKi8KKwkJCWpmZnMy X2RiZygxLCAiV2FpdGluZyBmb3IgaW5vICMldSB0byBmaW5pc2ggY3JlYXRpb25cbiIsCisJCQkJ ICBpYy0+aW5vKTsKKwkJCS8qIFdlIG5lZWQgdG8gY29tZSBiYWNrIGFnYWluIGZvciB0aGUgX3Nh bWVfIGlub2RlLiBXZSd2ZQorCQkJIG1hZGUgbm8gcHJvZ3Jlc3MgaW4gdGhpcyBjYXNlLCBidXQg dGhhdCBzaG91bGQgYmUgT0sgKi8KKwkJCWMtPmNoZWNrX2lubyA9IGljLT5pbm87CisJCQltdXRl eF91bmxvY2soJmMtPmFsbG9jX3NlbSk7CisJCQlzbGVlcF9vbl9zcGludW5sb2NrKCZjLT5pbm9j YWNoZV93cSwgJmMtPmlub2NhY2hlX2xvY2spOworCQkJcmV0dXJuIDA7CisKIAkJY2FzZSBJTk9f U1RBVEVfUkVBRElORzoKIAkJCS8qIFdlIG5lZWQgdG8gd2FpdCBmb3IgaXQgdG8gZmluaXNoLCBs ZXN0IHdlIG1vdmUgb24KIAkJCSAgIGFuZCB0cmlnZ2VyIHRoZSBCVUcoKSBhYm92ZSB3aGlsZSB3 ZSBoYXZlbid0IHlldApAQCAtMzc2LDYgKzM5MCwxOSBAQCBpbnQgamZmczJfZ2FyYmFnZV9jb2xs ZWN0X3Bhc3Moc3RydWN0IGpmZnMyX3NiX2luZm8gKmMpCiAJCX0KIAkJYnJlYWs7CiAKKwljYXNl IElOT19TVEFURV9DUkVBVElORzoKKwkJLyogV2UgY2FuJ3QgcHJvY2VzcyB0aGlzIGlub2RlIHdo aWxlIGl0IGlzIGJlaW5nIGNyZWF0ZWQKKwkJICAgdG8gYXZvaWQgYSBkZWFkbG9jayBjb25kaXRp b24gYmVjYXVzZSB0aGUgZnVuY3Rpb24KKwkJICAgaWdldF9sb2NrZWQoKSB3aWxsIHRyeSB0byBs b2NrIHRoZSBpbm9kZSB0byBnZXQgaXQuCisJCSAgIEhvZXZlciwgdG8gZmluaXNoIHRoZSBjcmVh dGlvbiB3ZSBuZWVkIHRvIHVubG9jayB0aGUKKwkJICAgYWxsb2Nfc2VtKCkgYW5kIGJlY2F1c2Ug d2UgZHJvcHBlZCB0aGUgYWxsb2Nfc2VtIHdlIG11c3QKKwkJICAgcmV0dXJuIHRvIHN0YXJ0IGFn YWluIGZyb20gdGhlIGJlZ2lubmluZy4gKi8KKwkJamZmczJfZGJnKDEsICJXYWl0aW5nIGZvciBp bm8gIyV1IHRvIGZpbmlzaCBjcmVhdGlvblxuIiwKKwkJCSAgaWMtPmlubyk7CisJCW11dGV4X3Vu bG9jaygmYy0+YWxsb2Nfc2VtKTsKKwkJc2xlZXBfb25fc3BpbnVubG9jaygmYy0+aW5vY2FjaGVf d3EsICZjLT5pbm9jYWNoZV9sb2NrKTsKKwkJcmV0dXJuIDA7CisKIAljYXNlIElOT19TVEFURV9Q UkVTRU5UOgogCQkvKiBJdCdzIGluLWNvcmUuIEdDIG11c3QgaWdldCgpIGl0LiAqLwogCQlicmVh azsKZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL25vZGVsaXN0LmggYi9mcy9qZmZzMi9ub2RlbGlzdC5o CmluZGV4IDJlOThmYTI3N2RhYi4uMDZmZDc3YjllM2NjIDEwMDY0NAotLS0gYS9mcy9qZmZzMi9u b2RlbGlzdC5oCisrKyBiL2ZzL2pmZnMyL25vZGVsaXN0LmgKQEAgLTE5Miw2ICsxOTIsNyBAQCBz dHJ1Y3QgamZmczJfaW5vZGVfY2FjaGUgewogI2RlZmluZSBJTk9fU1RBVEVfR0MJCTQJLyogR0Np bmcgYSAncHJpc3RpbmUnIG5vZGUgKi8KICNkZWZpbmUgSU5PX1NUQVRFX1JFQURJTkcJNQkvKiBJ biByZWFkX2lub2RlKCkgKi8KICNkZWZpbmUgSU5PX1NUQVRFX0NMRUFSSU5HCTYJLyogSW4gY2xl YXJfaW5vZGUoKSAqLworI2RlZmluZSBJTk9fU1RBVEVfQ1JFQVRJTkcJNwkvKiBUaGUgaW5vZGUg aXMgbG9ja2VkIHdoaWxlIGl0IGlzIGJlaW5nIGNyZWF0ZWQgKi8KIAogI2RlZmluZSBJTk9fRkxB R1NfWEFUVFJfQ0hFQ0tFRAkweDAxCS8qIGhhcyBubyBkdXBsaWNhdGUgeGF0dHJfcmVmICovCiAj ZGVmaW5lIElOT19GTEFHU19JU19ESVIJMHgwMgkvKiBpcyBhIGRpcmVjdG9yeSAqLwpkaWZmIC0t Z2l0IGEvZnMvamZmczIvcmVhZGlub2RlLmMgYi9mcy9qZmZzMi9yZWFkaW5vZGUuYwppbmRleCAx Y2FhYmZmOWRjOTEuLjNmMWVkN2MwMzZmMyAxMDA2NDQKLS0tIGEvZnMvamZmczIvcmVhZGlub2Rl LmMKKysrIGIvZnMvamZmczIvcmVhZGlub2RlLmMKQEAgLTEzNTIsNiArMTM1Miw3IEBAIGludCBq ZmZzMl9kb19yZWFkX2lub2RlKHN0cnVjdCBqZmZzMl9zYl9pbmZvICpjLCBzdHJ1Y3QgamZmczJf aW5vZGVfaW5mbyAqZiwKIAkJCWdvdG8gcmV0cnlfaW5vY2FjaGU7CiAKIAkJY2FzZSBJTk9fU1RB VEVfUkVBRElORzoKKwkJY2FzZSBJTk9fU1RBVEVfQ1JFQVRJTkc6CiAJCWNhc2UgSU5PX1NUQVRF X1BSRVNFTlQ6CiAJCQkvKiBFZXAuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gSXQgY2FuCiAJ CQloYXBwZW4gaWYgTGludXggY2FsbHMgcmVhZF9pbm9kZSgpIGFnYWluCmRpZmYgLS1naXQgYS9m cy9qZmZzMi93YnVmLmMgYi9mcy9qZmZzMi93YnVmLmMKaW5kZXggOGZmN2EwYjZhZGQyLi5kOTli YjJkYzAxOTUgMTAwNjQ0Ci0tLSBhL2ZzL2pmZnMyL3didWYuYworKysgYi9mcy9qZmZzMi93YnVm LmMKQEAgLTUxOCw3ICs1MTgsOCBAQCBzdGF0aWMgdm9pZCBqZmZzMl93YnVmX3JlY292ZXIoc3Ry dWN0IGpmZnMyX3NiX2luZm8gKmMpCiAJCQkJCQkJCSAgICAgICh2b2lkICopKGJ1Zj86Yy0+d2J1 ZikgKyAocmVmX29mZnNldChyYXcpIC0gc3RhcnQpKTsKIAkJCX0gZWxzZSBpZiAodW5saWtlbHko aWMtPnN0YXRlICE9IElOT19TVEFURV9QUkVTRU5UICYmCiAJCQkJCSAgICBpYy0+c3RhdGUgIT0g SU5PX1NUQVRFX0NIRUNLRURBQlNFTlQgJiYKLQkJCQkJICAgIGljLT5zdGF0ZSAhPSBJTk9fU1RB VEVfR0MpKSB7CisJCQkJCSAgICBpYy0+c3RhdGUgIT0gSU5PX1NUQVRFX0dDICYmCisJCQkJCSAg ICBpYy0+c3RhdGUgIT0gSU5PX1NUQVRFX0NSRUFUSU5HKSkgewogCQkJCUpGRlMyX0VSUk9SKCJJ bm9kZSAjJXUgaXMgaW4gc3RyYW5nZSBzdGF0ZSAlZCFcbiIsIGljLT5pbm8sIGljLT5zdGF0ZSk7 CiAJCQkJQlVHKCk7CiAJCQl9CmRpZmYgLS1naXQgYS9mcy9qZmZzMi93cml0ZS5jIGIvZnMvamZm czIvd3JpdGUuYwppbmRleCBjZGE5YTM2MTM2OGUuLjFkYWI0OTFiNTM5ZSAxMDA2NDQKLS0tIGEv ZnMvamZmczIvd3JpdGUuYworKysgYi9mcy9qZmZzMi93cml0ZS5jCkBAIC0zNSw3ICszNSwxMSBA QCBpbnQgamZmczJfZG9fbmV3X2lub2RlKHN0cnVjdCBqZmZzMl9zYl9pbmZvICpjLCBzdHJ1Y3Qg amZmczJfaW5vZGVfaW5mbyAqZiwKIAlmLT5pbm9jYWNoZSA9IGljOwogCWYtPmlub2NhY2hlLT5w aW5vX25saW5rID0gMTsgLyogV2lsbCBiZSBvdmVyd3JpdHRlbiBzaG9ydGx5IGZvciBkaXJlY3Rv cmllcyAqLwogCWYtPmlub2NhY2hlLT5ub2RlcyA9IChzdHJ1Y3QgamZmczJfcmF3X25vZGVfcmVm ICopZi0+aW5vY2FjaGU7Ci0JZi0+aW5vY2FjaGUtPnN0YXRlID0gSU5PX1NUQVRFX1BSRVNFTlQ7 CisJZi0+aW5vY2FjaGUtPnN0YXRlID0gSU5PX1NUQVRFX0NSRUFUSU5HOworCS8qIFdlIHNldCB0 aGUgc3RhdGUgZXF1YWwgYXMgSU5PX1NUQVRFX0NSRUFUSU5HIHRvIGF2b2lkIGEgZGVhZGxvY2sg aW4gR0MKKwkgICBiZWNhdXNlIHRoZSBuZXcgaW5vZGUgaXNuwrR0IGNvbXBsZXRlbHkgY3JlYXRl ZCBhbmQgR0MgdHJpZXMgdG8gZ2V0IHRoZQorCSAgIGxvY2tlZCBpbm9kZS4gU28sIHRoZSBjcmVh dGlvbiBmdW5jdGlvbiBjYW7CtHQgcGljayB1cCBhbGxvY19zZW0gYW5kCisJICAgZGVhZGxvY2sg aGFwcGVucyBiZXR3ZWVuIGFsbG9jX3NlbSBhbmQgdGhlIHNwZWNpZmljIGlub2RlIGxvY2suICov CiAKIAlqZmZzMl9hZGRfaW5vX2NhY2hlKGMsIGYtPmlub2NhY2hlKTsKIAlqZmZzMl9kYmcoMSwg IiVzKCk6IEFzc2lnbmVkIGlubyMgJWRcbiIsIF9fZnVuY19fLCBmLT5pbm9jYWNoZS0+aW5vKTsK LS0gCjIuNTMuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K