relan / exfat

Free exFAT file system implementation
GNU General Public License v2.0
789 stars 179 forks source link

Fix file contiguous judgement. #101

Closed Noctis-AKM closed 4 years ago

relan commented 6 years ago

What makes you think that the condition was incorrect?

Noctis-AKM commented 5 years ago

In my opinion, "previous" is the last on-disk cluster number of a file. "previous + 1" passed to allocate_cluster() as a hint and get a new allocated cluster --- "next". If "next" and the hint are equal, means that the file is contiguous, other wise, the file is fragmented. I have tested growing a file in an empty exfat with exfat-fuse, found the file have fat entries set because of the incorrect condition.

relan commented 5 years ago

I see, thanks. I'm on vacation now, will be able to review and test in 2 weeks. Sorry for the delay.

relan commented 5 years ago

Thanks! I'm on vacation now, will be able to review and test in 2 weeks. Sorry for this pause.

PetteriAimonen commented 2 years ago

Would it be possible to make a new tagged version, so that this fix would get included in Ubuntu and other distributions?

Currently they are still shipping version 1.3.0. This bug has a large impact on the performance of seeks on embedded systems using e.g. SdFat library.

aperezbios commented 2 years ago

@relan please see above. It's been six weeks since the request for a point release was made.

PetteriAimonen commented 2 years ago

Apparently Linux kernel also has a exfat driver nowadays, so the fuse-exfat package on Ubuntu is no longer needed even. Unfortunately many tutorials say to install it, and it appears to take priority over the kernel driver.

(Edit: Thanks for the 1.4.0 tag release)