Rev 3521 | Rev 3530 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3521 | Rev 3526 | ||
---|---|---|---|
Line 264... | Line 264... | ||
264 | 264 | ||
265 | futex_down(&parentp->idx->lock); |
265 | futex_down(&parentp->idx->lock); |
266 | bb = block_get(parentp->idx->dev_handle, BS_BLOCK, BS_SIZE); |
266 | bb = block_get(parentp->idx->dev_handle, BS_BLOCK, BS_SIZE); |
267 | bps = uint16_t_le2host(FAT_BS(bb)->bps); |
267 | bps = uint16_t_le2host(FAT_BS(bb)->bps); |
268 | dps = bps / sizeof(fat_dentry_t); |
268 | dps = bps / sizeof(fat_dentry_t); |
269 | blocks = parentp->size / bps + (parentp->size % bps != 0); |
269 | blocks = parentp->size / bps; |
270 | for (i = 0; i < blocks; i++) { |
270 | for (i = 0; i < blocks; i++) { |
271 | unsigned dentries; |
- | |
272 | - | ||
273 | b = fat_block_get(bb->data, parentp, i); |
271 | b = fat_block_get(bb->data, parentp, i); |
274 | dentries = (i == blocks - 1) ? |
- | |
275 | parentp->size % sizeof(fat_dentry_t) : |
- | |
276 | dps; |
- | |
277 | for (j = 0; j < dentries; j++) { |
272 | for (j = 0; j < dps; j++) { |
278 | d = ((fat_dentry_t *)b->data) + j; |
273 | d = ((fat_dentry_t *)b->data) + j; |
279 | switch (fat_classify_dentry(d)) { |
274 | switch (fat_classify_dentry(d)) { |
280 | case FAT_DENTRY_SKIP: |
275 | case FAT_DENTRY_SKIP: |
281 | continue; |
276 | continue; |
282 | case FAT_DENTRY_LAST: |
277 | case FAT_DENTRY_LAST: |
Line 359... | Line 354... | ||
359 | futex_down(&nodep->idx->lock); |
354 | futex_down(&nodep->idx->lock); |
360 | bb = block_get(nodep->idx->dev_handle, BS_BLOCK, BS_SIZE); |
355 | bb = block_get(nodep->idx->dev_handle, BS_BLOCK, BS_SIZE); |
361 | bps = uint16_t_le2host(FAT_BS(bb)->bps); |
356 | bps = uint16_t_le2host(FAT_BS(bb)->bps); |
362 | dps = bps / sizeof(fat_dentry_t); |
357 | dps = bps / sizeof(fat_dentry_t); |
363 | 358 | ||
364 | blocks = nodep->size / bps + (nodep->size % bps != 0); |
359 | blocks = nodep->size / bps; |
365 | 360 | ||
366 | for (i = 0; i < blocks; i++) { |
361 | for (i = 0; i < blocks; i++) { |
367 | unsigned dentries; |
- | |
368 | fat_dentry_t *d; |
362 | fat_dentry_t *d; |
369 | 363 | ||
370 | b = fat_block_get(bb->data, nodep, i); |
364 | b = fat_block_get(bb->data, nodep, i); |
371 | dentries = (i == blocks - 1) ? |
- | |
372 | nodep->size % sizeof(fat_dentry_t) : |
- | |
373 | dps; |
- | |
374 | for (j = 0; j < dentries; j++) { |
365 | for (j = 0; j < dps; j++) { |
375 | d = ((fat_dentry_t *)b->data) + j; |
366 | d = ((fat_dentry_t *)b->data) + j; |
376 | switch (fat_classify_dentry(d)) { |
367 | switch (fat_classify_dentry(d)) { |
377 | case FAT_DENTRY_SKIP: |
368 | case FAT_DENTRY_SKIP: |
378 | continue; |
369 | continue; |
379 | case FAT_DENTRY_LAST: |
370 | case FAT_DENTRY_LAST: |