#3003 closed defect (fixed)

FAT does not support clusters bigger than 32K

Reported by: munster Owned by: Sebastian Huber
Priority: normal Milestone: 5.1
Component: fs/fat Version: 5
Severity: normal Keywords: FAT, cluster
Cc: Blocked By:
Blocking:

Description

When used with 64KiB clusters, the FAT driver will loop forever in cpukit/libfs/src/dosfs/fat.c, line 580.
This happens because struct fat_vol_s declares bytes per cluster variable as uint16_t bpc, whereas it can be as big as 256KiB.

Here is a link for Linux FAT driver which doesn't make any assumption about cluster size: http://lxr.free-electrons.com/source/fs/fat/inode.c?v=2.6.24#L1262

Attachments (1)

fat.diff (1.7 KB) - added by munster on Apr 21, 2017 at 9:41:56 AM.

Download all attachments as: .zip

Change History (8)

comment:1 Changed on Apr 20, 2017 at 3:15:38 PM by Gedare Bloom

Do you have a test case?

Do you have a proposed solution? is it just to increase bpc type size?

Changed on Apr 21, 2017 at 9:41:56 AM by munster

Attachment: fat.diff added

comment:2 Changed on Apr 21, 2017 at 9:43:32 AM by munster

I have attached a solution which increases bpc size and removes the limit.

comment:3 Changed on May 11, 2017 at 7:31:02 AM by Sebastian Huber

Milestone: 4.124.12.0

comment:4 Changed on Aug 24, 2017 at 9:56:36 AM by Sebastian Huber

Owner: changed from chrisj@… to Sebastian Huber
Status: newassigned

comment:5 Changed on Sep 6, 2017 at 8:21:32 AM by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: assignedclosed

In fae59c9/rtems:

dosfs: Support a cluster size of 64KiB

Close #3003.

comment:6 Changed on Oct 10, 2017 at 6:50:58 AM by Sebastian Huber

Component: fsfs/fat

comment:7 Changed on Nov 9, 2017 at 6:27:14 AM by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

Note: See TracTickets for help on using tickets.