diff options
author | Andrew Victor <andrew@sanpeople.com> | 2005-02-09 04:09:05 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-05-23 06:27:09 -0400 |
commit | 3be36675d41a30ed3b192f92684f1417aa0f8bfe (patch) | |
tree | da8395bb14ffef19e551c509c47d16b52fb536d9 /fs/jffs2/gc.c | |
parent | 045e9a5d51ced27bfcbdb78071534ce6fd36b33d (diff) |
[JFFS2] Core changes required to support JFFS2-on-Dataflash devices.
DataFlash page-sizes are not a power of two (they're multiples of 528
bytes). There are a few places in JFFS2 code where sector_size is used
as a bitmask. A new macro (SECTOR_ADDR) was defined to calculate these
sector addresses. For non-DataFlash devices, the original (faster)
bitmask operation is still used.
In scan.c, the EMPTY_SCAN_SIZE was a constant of 1024.
Since this could be larger than the sector size of the DataFlash, this
is now basically set to MIN(sector_size, 1024).
Addition of a jffs2_is_writebuffered() macro.
Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'fs/jffs2/gc.c')
-rw-r--r-- | fs/jffs2/gc.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/jffs2/gc.c b/fs/jffs2/gc.c index 87ec74ff5930..61ae001eced5 100644 --- a/fs/jffs2/gc.c +++ b/fs/jffs2/gc.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * | 7 | * |
8 | * For licensing information, see the file 'LICENCE' in this directory. | 8 | * For licensing information, see the file 'LICENCE' in this directory. |
9 | * | 9 | * |
10 | * $Id: gc.c,v 1.144 2004/12/21 11:18:50 dwmw2 Exp $ | 10 | * $Id: gc.c,v 1.145 2005/02/09 09:09:01 pavlov Exp $ |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
@@ -816,8 +816,7 @@ static int jffs2_garbage_collect_deletion_dirent(struct jffs2_sb_info *c, struct | |||
816 | 816 | ||
817 | /* Doesn't matter if there's one in the same erase block. We're going to | 817 | /* Doesn't matter if there's one in the same erase block. We're going to |
818 | delete it too at the same time. */ | 818 | delete it too at the same time. */ |
819 | if ((raw->flash_offset & ~(c->sector_size-1)) == | 819 | if (SECTOR_ADDR(raw->flash_offset) == SECTOR_ADDR(fd->raw->flash_offset)) |
820 | (fd->raw->flash_offset & ~(c->sector_size-1))) | ||
821 | continue; | 820 | continue; |
822 | 821 | ||
823 | D1(printk(KERN_DEBUG "Check potential deletion dirent at %08x\n", ref_offset(raw))); | 822 | D1(printk(KERN_DEBUG "Check potential deletion dirent at %08x\n", ref_offset(raw))); |