On Mon, 2007-10-29 at 16:18 +0100, Mike Galbraith wrote:Not being very good at walking away from unsolved mysteries, I chased it down. The problem is that... commit[a32ea1e1f925399e0d81ca3f7394a44a6dafa12c] Fix read/truncate race ...calls ntfs_readpage() for a zero i_size inode, which it isn't accustomed to. Below is the hammer which made my box a happy camper again. diff --git a/fs/ntfs/aops.c b/fs/ntfs/aops.c index 6e5c253..ddab5a3 100644 --- a/fs/ntfs/aops.c +++ b/fs/ntfs/aops.c @@ -401,7 +401,7 @@ static int ntfs_readpage(struct file *file, struct page *page) MFT_RECORD *mrec; unsigned long flags; u32 attr_len; - int err = 0; + int err = 0, once = 0; retry_readpage: BUG_ON(!PageLocked(page)); @@ -414,6 +414,18 @@ retry_readpage: return 0; } vi = page->mapping->host; + /* + * If we've been called to read a zero sized inode, zero and bail. + */ + if (!once) { + loff_t i_size = i_size_read(vi); + + once++; + if (!i_size) { + zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); + goto done; + } + } ni = NTFS_I(vi); /* * Only $DATA attributes can be encrypted and only unnamed $DATA -
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Linus Torvalds | Linux 2.6.27-rc8 |
| Christoph Lameter | Re: Major regression on hackbench with SLUB (more numbers) |
| Mike Travis | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
git: | |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Hugh Dickins | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
