summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-02-05 16:57:48 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-02-05 16:57:48 -0800
commit6725839b5daa05f79f74d3088d7ff380eb77504e (patch)
treee3e659a6fd5535cbe7d5a0f5a97dd82056739c92
parentafcde6ef0d970ad1e1a1bc0506d6dae924abaab1 (diff)
[PATCH] give hugetlbfs a set_page_dirty a_op
Seems that nobody has tested direct IO into hugetlb pages yet. The VFS gets upset about running set_page_dirty() against a non-uptodate page. So give hugetlbfs inodes a private no-op ->set_page_dirty() to isolate them from all that.
-rw-r--r--fs/hugetlbfs/inode.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index bb8bf302da95..1022c9ce54bd 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -450,10 +450,19 @@ static int hugetlbfs_symlink(struct inode * dir, struct dentry *dentry, const ch
return error;
}
+/*
+ * For direct-IO reads into hugetlb pages
+ */
+int hugetlbfs_set_page_dirty(struct page *page)
+{
+ return 0;
+}
+
static struct address_space_operations hugetlbfs_aops = {
.readpage = hugetlbfs_readpage,
.prepare_write = hugetlbfs_prepare_write,
- .commit_write = hugetlbfs_commit_write
+ .commit_write = hugetlbfs_commit_write,
+ .set_page_dirty = hugetlbfs_set_page_dirty,
};
struct file_operations hugetlbfs_file_operations = {