Ok, it seems to work now. I was using fscache_allocate_page before calling fscache_write_page. However, after I switched from fscache_allocate_page to fscache_read_or_alloc_pages, it works. I thought they perform the same thing if the requested page(s) is not in the cache........ Derek
I am using 2.6.17 and yes, I am using cachefiles. I don't think it is the problem of the patches itself since it works great with nfs. This problem happens only when my module directly calls fscache_write_page. After that, I try to copy the same file (this file should be in the cache by now) from the nfs server. However, the client cannot find the file from the cache. Do I have to somehow inform the nfs client that the file is in the cache already? Derek > Derek Siu <golf1123@xxxxxxxxx> wrote: > > > After I called fscache_write_page to write a page to the cache, I > > called both the fscache_read_or_alloc_page and > > fscache_read_or_alloc_pages. Only the first function can find the > > page. The second function returns ENODATA. Do I have to do anything > > after calling fscache_write_page? I've read through the nfs source but > > I can't find any special functions being called after > > fscache_write_page. > > It's always possible that the backing file (I presume you are using cachefiles) > got deleted, though if it does this every time, that would seem surprising. > > What version of kernel and patches are you using? > > David > > -- > Linux-cachefs mailing list > Linux-cachefs@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/linux-cachefs >