An error occurred fetching the project authors.
- 28 May, 2003 1 commit
-
-
David Woodhouse authored
- JFFS2 bugfixes and performance improvements - Support for 64-bit flash arrangements - Optimise for linear mappings of flash, without out-of-line access functions - New map drivers - Updated NAND flash support, new board drivers - Support for DiskOnChip Millennium Plus and INFTL translation layer - Clean up all translation layers with a single blkdev helper library. - Fix races in MTD device registration/deregistration - Add support for new flash chips - Clean up partition parsing code More detailed comments in per-file changelogs.
-
- 12 Nov, 2002 1 commit
-
-
David Woodhouse authored
Various bugfixes -- deadlock in prepare_write() on extension of file fixed. -- corruption when reading a page where a multi-page hole ends fixed. -- oops on unlink of bad inodes fixed. -- allow bi-endian operation; mounting of non-host-endian file system is now possible. Optimisations -- switch to rbtrees for the inode fragment list. O(log n) insertion and lookup now. -- avoid checking all data crcs and building fragment trees at scan time. Do it later in GC. -- use 'point' method if available to use a pointer directly into the flash chip during scan, rather than always using memcpy into RAM first. -- start to track node 'pristine' status, for later use in GC optimisation -- we'll be able to copy those nodes intact without having to read them, decompress and recompress their payload, etc. Or indeed having to read_inode() their inode. -- fix ordering of work done from kupdated. We now erase a block, mark it free and stick it on the appropriate list, and go on to the next one. Before, we erased _all_ the pending blocks before marking any of them free, while everyone waited for us.
-
- 23 Jul, 2002 3 commits
-
-
David Woodhouse authored
Fix rename-over-existing-file behaviour to actually reduce nlink of the victim, and disallow rename over a non-empty directory. Improved NAND support, some optimisations and other bug fixes.
-
David Woodhouse authored
which contains the new licence info. JFFS2 is no longer dual-licensed under RHEPL and GPL; eCos is now GPL'd (with an exception for linking application) and hence so is JFFS2.
-
David Woodhouse authored
BKL additions from someone who evidently didn't bother to look at either the code they were modifying or the documentation in README.Locking which explicitly states the BKL is not needed.
-
- 30 Apr, 2002 1 commit
-
-
Andrew Morton authored
- Fixes a performance problem - callers of prepare_write/commit_write, etc are locking pages, which synchronises them behind writeback, which also locks these pages. Significant slowdowns for some workloads. - So pages are no longer locked while under writeout. Introduce a new PG_writeback and associated infrastructure to support this design change. - Pages which are under read I/O still use PageLocked. Pages which are under write I/O have PageWriteback() true. I considered creating Page_IO instead of PageWriteback, and marking both readin and writeout pages as PageIO(). So pages are unlocked during both read and write. There just doesn't seem a need to do this - nobody ever needs unblocking access to a page which is under read I/O. - Pages under swapout (brw_page) are PageLocked, not PageWriteback. So their treatment is unchangeded. It's not obvious that pages which are under swapout actually need the more asynchronous behaviour of PageWriteback. I was setting the swapout pages PageWriteback and unlocking them prior to submitting the buffers in brw_page(). This led to deadlocks on the exit_mmap->zap_page_range->free_swap_and_cache path. These functions call block_flushpage under spinlock. If the page is unlocked but has locked buffers, block_flushpage->discard_buffer() sleeps. Under spinlock. So that will need fixing if for some reason we want swapout to use PageWriteback. Kernel has called block_flushpage() under spinlock for a long time. It is assuming that a locked page will never have locked buffers. This appears to be true, but it's ugly. - Adds new function wait_on_page_writeback(). Renames wait_on_page() to wait_on_page_locked() to remind people that they need to call the appropriate one. - Renames filemap_fdatasync() to filemap_fdatawrite(). It's more accurate - "sync" implies, if anything, writeout and wait. (fsync, msync) Or writeout. it's not clear. - Subtly changes the filemap_fdatawrite() internals - this function used to do a lock_page() - it waited for any other user of the page to let go before submitting new I/O against a page. It has been changed to simply skip over any pages which are currently under writeback. This is the right thing to do for memory-cleansing reasons. But it's the wrong thing to do for data consistency operations (eg, fsync()). For those operations we must ensure that all data which was dirty *at the time of the system call* are tight on disk before the call returns. So all places which care about this have been converted to do: filemap_fdatawait(mapping); /* Wait for current writeback */ filemap_fdatawrite(mapping); /* Write all dirty pages */ filemap_fdatawait(mapping); /* Wait for I/O to complete */ - Fixes a truncate_inode_pages problem - truncate currently will block when it hits a locked page, so it ends up getting into lockstep behind writeback and all of the file is pointlessly written back. One fix for this is for truncate to simply walk the page list in the opposite direction from writeback. I chose to use a separate cleansing pass. It is more CPU-intensive, but it is surer and clearer. This is because there is no reason why the per-address_space ->vm_writeback and ->writeback_mapping functions *have* to perform writeout in ->dirty_pages order. They may choose to do something totally different. (set_page_dirty() is an a_op now, so address_spaces could almost privatise the whole dirty-page handling thing. Except truncate_inode_pages and invalidate_inode_pages assume that the pages are on the address_space lists. hmm. So making truncate_inode_pages and invalidate_inode_pages a_ops would make some sense).
-
- 12 Mar, 2002 1 commit
-
-
David Woodhouse authored
- Preliminary version of NAND flash support. - Locking documentation and fixes (including BKL removal because it's superfluous). - Performance improvements - especially for mount time. - Annoying stuff like i_nlink on directories fixed. - Portability cleanups.
-
- 26 Feb, 2002 1 commit
-
-
Dave Jones authored
Forward ports from 2.4, Various janitor bits, and some fixes by me to make the thing work again in 2.5. I munged the MTDRAM driver to work also (seperate patch to follow), and it seems to work. David Woodhouse gave this the once over, and approved the changes. Complete changelog below: o Don't create two slabcaches with the same name. o Don't corrupt eraseblock lists on mount o Don't mark nodes obsolete during mount o __attribute__((packed)) on the node definitions. o Fix up() without down() in jffs2_readdir(). o Fix duplicate version number usage - s/highest_version++/++highest_version/ o Fix (i.e. implement) mtime/ctime on directories. maybe too busy with the bk stuff o Don't allow hardlinks of directories. o s/(mode&S_IFMT)==S_IFLNK/S_ISLNK(mode)/ et al to keep Al happy. o Fix for garbage-collection of holes, where we used to write nodes out with csize/dsize swapped. Workarounds for existing such brokenness. o Improve wear levelling by rotating node lists on mount, to avoid starting at one end of the flash every time. o Remember to get internal inode-semaphore on symlink operations.
-
- 09 Feb, 2002 1 commit
-
-
Dave Jones authored
Big bits first, I'll redo the smaller bits tomorrow after some sleep. Same as last time, rediffed against pre5
-
- 05 Feb, 2002 4 commits
-
-
Linus Torvalds authored
- Matt Domsch: combine common crc32 library - Pete Zaitcev: ymfpci update - Davide Libenzi: scheduler improvements - Al Viro: almost there: "struct block_device *" everywhere - Richard Gooch: devfs cpqarray update, race fix - Rusty Russell: PATH_MAX should include the final '0' count - David Miller: various random updates (mainly net and sparc)
-
Linus Torvalds authored
- Jeff Garzik: fix up loop and md for struct kdev_t typechecking - Jeff Garzik: improved old-tulip network driver - Arnaldo: more scsi driver bio updates - Kai Germaschewski: ISDN updates - various: kdev_t updates
-
Linus Torvalds authored
- Al Viro: separate out superblocks and FS namespaces: fs/super.c fathers fs/namespace.c - David Woodhouse: large MTD and JFFS[2] update - Marcelo Tosatti: resurrect oom handling - Hugh Dickins: add_to_swap_cache racefix cleanup - Jean Tourrilhes: IrDA update - Martin Bligh: support clustered logical APIC for >8 CPU x86 boxes - Richard Henderson: alpha update
-
Linus Torvalds authored
- Alan Cox: continued merging - Mingming Cao: make msgrcv/shmat check the queue/segment ID's properly - Greg KH: USB serial init failure fix, Xircom serial converter driver - Neil Brown: nsfd/raid/md/lockd cleanups - Ingo Molnar: multipath RAID personality, raid xor update - Hugh Dickins/Marcelo Tosatti: swapin read-ahead race fix - Vojtech Pavlik: fix up some of the infrastructure for x86-64 - Robert Love: AMD 761 AGP GART support - Jens Axboe: fix SCSI-generic queue handling race - me: be sane about page reference bits
-