On Wed, Apr 27, 2011 at 14:33, Matthew Wilcox wrote: > On Wed, Apr 27, 2011 at 08:13:47PM +0200, Andrea Righi wrote: >> @@ -127,6 +128,12 @@ SYSCALL_DEFINE(fadvise64_64)(int fd, loff_t offset, >> loff_t len, int advice) >> invalidate_mapping_pages(mapping, start_index, >> end_index); >> break; >> + case POSIX_FADV_DONTNEED_FS: >> + if (capable(CAP_SYS_ADMIN)) >> + drop_pagecache_sb(file->f_dentry->d_sb, NULL); >> + else >> + ret = -EPERM; >> + break; >> default: >> ret = -EINVAL; >> } > > Mmm ... what if I open /dev/sdxyz and call fadvise() on it? I think > you end up flushing /dev's page cache entries, instead of the filesystem > which is on /dev/sdxyz.
i was thinking of that, but was trying to come up with situations where there might not have a node to work on. fs's in a file go through loop devs, dm/lvm have ones created, and flash fs's still have a mtd block. how about network based fs's ? how you going to signal dropping of pages for nfs or cifs or fuse ones ? -mike -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
