Messages in this thread |  | | | Date | Tue, 1 Aug 2006 00:39:58 -0700 | | From | Andrew Morton <> | | Subject | Re: [PATCH]: ufs: ufs_get_locked_patch race fix |
| |
On Tue, 1 Aug 2006 11:30:43 +0400 Evgeniy Dushistov <dushistov@mail.ru> wrote:
> On Mon, Jul 31, 2006 at 11:02:51PM -0700, Andrew Morton wrote: > > On Mon, 31 Jul 2006 16:57:02 +0400 > > Evgeniy Dushistov <dushistov@mail.ru> wrote: > > > > Looks good to me. > > > > Is there any need to be checking ->index? Normally we simply use the > > sequence: > > > > lock_page(page); > > if (page->mapping == NULL) > > /* truncate got there first */ > > > > to handle this case. > > Yes, I made it in analogy with `find_lock_page' and missed fact > that if we increment usage counter of page, we have no need to check > page->index.
OK. find_lock_page() has the splice stuff in it.
> Need another patch?
Is OK, I updated it.
I'm not sure that the `goto repeat' is needed if truncate got there first, really - if truncate took the page down then it's now outside i_size and shouldn't be coming back.
If the page _can_ come back then this code is all rather problematic. Because this means that the page can come back (via an extending write()) one nanosecond after ufs_get_locked_page() returns NULL. Won't the callers of ufs_get_locked_page() get confused by that?
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |