On 19.07.2007 [09:58:50 -0700], Andrew Morton wrote:
On Thu, 19 Jul 2007 08:51:49 -0700 Badari Pulavarty <pbadari@xxxxxxxxxx> wrote:
+ }
+
+ offset += ret;
+ retval += ret;
+ len -= ret;
+ index += offset >> HPAGE_SHIFT;
+ offset &= ~HPAGE_MASK;
+
+ page_cache_release(page);
+ if (ret == nr && len)
+ continue;
+ goto out;
+ }
+out:
+ return retval;
+}
This code doesn't have all the ghastly tricks which we deploy to
handle concurrent truncate.
Do I need to ? Baaahh!! I don't want to deal with them.
Nick, can you think of any serious consequences of a read/truncate
race in there? I can't..
All I want is a simple read() to get my oprofile working. Please
advise.
Did you consider changing oprofile userspace to read the executable
with mmap?
It's not actually oprofile's code, though, it's libbfd (used by
oprofile). And it works fine (presumably) for other binaries.