mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 13:43:51 +00:00
Change since last update:
- Fix page refcount leak when looking up specific inodes introduced by metabuf reworking. -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEQ0A6bDUS9Y+83NPFUXZn5Zlu5qoFAmXbQekRHHhpYW5nQGtl cm5lbC5vcmcACgkQUXZn5Zlu5qpkyg//cjKnuzI2gHL3ff1o0jiTMD11Y/EmwzQS C+JgE8WDMjUlVQpbwYnFWo/6se8qvk/fwTXPcRc45piF8YNZVchwsagxO626Kab7 0xTX7ZUgjuth6ahrkAJZkJNMgO4mYf928uYB6EVWaTb4iF0iT6glEOsSVAR/cssL wYKbtgv3OP9t6fQcN/XL31hRkqr2MPk0y5Q27KyT4zo4lrx3xyah7Ndo3aEK/RcM +6FUwqRiDsgDF/Ga65ylDvEp9eA03OFNHBn4DrORe3B9KV75NkmSJf/8QVEceNV/ 9D072Hvt7/iyOq53AxWH3Jvp7aro/i0rvAHPbXZX4RVyqcJxaLYCQyrBFvQL0/Ie B+793Iua8zbkQCbZ85LpTGrxAb5WydlSJp10AuHTr2MO+wS8bBqf96Jp9x1MuS9D vqq7jbjwuZfnFUjpzu49GF6htG+WRVgY5TDzU6IAr3izXuqVxmz+zw5zExbGMmKm 2S5lb+q68DOBP4YaelAQHh97k0pYDW3eQ6GhDD2FA4P/DOr8p3vszZFBeaqaL70v WS8z1wzOgEaleTRN4iRFlMCTvRLjOtDEaUNquohcHqJLe7w/DF7gzCU+0//8dVjD cZieFX8uZDtzzcjrlYWeTo8oHd0q2WYixbCN8P92/YXUFIVpfdl85ugyr9KvkZxd jKzpAy2LbSw= =/Bfj -----END PGP SIGNATURE----- Merge tag 'erofs-for-6.8-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs Pull erofs fix from Gao Xiang: - Fix page refcount leak when looking up specific inodes introduced by metabuf reworking * tag 'erofs-for-6.8-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs: erofs: fix refcount on the metabuf used for inode lookup
This commit is contained in:
commit
4ca0d9894f
@ -130,24 +130,24 @@ static void *erofs_find_target_block(struct erofs_buf *target,
|
||||
/* string comparison without already matched prefix */
|
||||
diff = erofs_dirnamecmp(name, &dname, &matched);
|
||||
|
||||
if (!diff) {
|
||||
*_ndirents = 0;
|
||||
goto out;
|
||||
} else if (diff > 0) {
|
||||
head = mid + 1;
|
||||
startprfx = matched;
|
||||
|
||||
if (!IS_ERR(candidate))
|
||||
erofs_put_metabuf(target);
|
||||
*target = buf;
|
||||
candidate = de;
|
||||
*_ndirents = ndirents;
|
||||
} else {
|
||||
if (diff < 0) {
|
||||
erofs_put_metabuf(&buf);
|
||||
|
||||
back = mid - 1;
|
||||
endprfx = matched;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!IS_ERR(candidate))
|
||||
erofs_put_metabuf(target);
|
||||
*target = buf;
|
||||
if (!diff) {
|
||||
*_ndirents = 0;
|
||||
return de;
|
||||
}
|
||||
head = mid + 1;
|
||||
startprfx = matched;
|
||||
candidate = de;
|
||||
*_ndirents = ndirents;
|
||||
continue;
|
||||
}
|
||||
out: /* free if the candidate is valid */
|
||||
|
Loading…
Reference in New Issue
Block a user