hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/fs/sysv/itree.c
....@@ -145,6 +145,10 @@
145145 */
146146 parent = block_to_cpu(SYSV_SB(inode->i_sb), branch[n-1].key);
147147 bh = sb_getblk(inode->i_sb, parent);
148
+ if (!bh) {
149
+ sysv_free_block(inode->i_sb, branch[n].key);
150
+ break;
151
+ }
148152 lock_buffer(bh);
149153 memset(bh->b_data, 0, blocksize);
150154 branch[n].bh = bh;
....@@ -438,7 +442,7 @@
438442 res += blocks;
439443 direct = 1;
440444 }
441
- return blocks;
445
+ return res;
442446 }
443447
444448 int sysv_getattr(const struct path *path, struct kstat *stat,