aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAnton Altaparmakov <aia21@cam.ac.uk>2006-06-22 17:47:15 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-22 18:05:55 -0400
commitf893afbe1262e27e91234506f72e17716190dd2f (patch)
tree4352204e9c53e278f7d494d2564f8ae78244feef /fs
parent5d2170ad1092b2940138dc3ae4a944d7bf87ae9e (diff)
[PATCH] NTFS: Critical bug fix (affects MIPS and possibly others)
Many thanks to Pauline Ng for the detailed bug report and analysis! Signed-off-by: Anton Altaparmakov <aia21@cantab.net> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/ntfs/file.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
index c63a83e8da98..36e1e136bb0c 100644
--- a/fs/ntfs/file.c
+++ b/fs/ntfs/file.c
@@ -1484,14 +1484,15 @@ static inline void ntfs_flush_dcache_pages(struct page **pages,
1484 unsigned nr_pages) 1484 unsigned nr_pages)
1485{ 1485{
1486 BUG_ON(!nr_pages); 1486 BUG_ON(!nr_pages);
1487 /*
1488 * Warning: Do not do the decrement at the same time as the call to
1489 * flush_dcache_page() because it is a NULL macro on i386 and hence the
1490 * decrement never happens so the loop never terminates.
1491 */
1487 do { 1492 do {
1488 /* 1493 --nr_pages;
1489 * Warning: Do not do the decrement at the same time as the
1490 * call because flush_dcache_page() is a NULL macro on i386
1491 * and hence the decrement never happens.
1492 */
1493 flush_dcache_page(pages[nr_pages]); 1494 flush_dcache_page(pages[nr_pages]);
1494 } while (--nr_pages > 0); 1495 } while (nr_pages > 0);
1495} 1496}
1496 1497
1497/** 1498/**