From: Marko O. <d0...@us...> - 2010-03-24 15:47:58
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "kdfs". The branch, make_kdfs_compile has been updated via 42ef403e52c81ccc23988091c27919207a2e8eae (commit) from 1f0f458227164acfb67d663065be08f09491824a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 42ef403e52c81ccc23988091c27919207a2e8eae Author: Marko Obrovac <mar...@in...> Date: Wed Mar 24 17:40:48 2010 +0100 Bug fixes Since now pages may overlap between nodes, each time a node writes a page to the disk, it should write from the start of the page in order to ensure that previous commits done by other nodes won't be lost or overwritten. Another small "bugfix" has been applied to kdfs_iol_file_default_owner, where we should check whether kdfs_ilocalfind returned a valid kdfs_inode pointer or not. diff --git a/fs/kdfs/address_space.c b/fs/kdfs/address_space.c index 8c658b2..cf15936 100644 --- a/fs/kdfs/address_space.c +++ b/fs/kdfs/address_space.c @@ -155,7 +155,8 @@ int kdfs_write_begin (struct file *file, return -ENOMEM; *pagep = page; - return __kdfs_prepare_write(file, page, from, from+len); + /* try to write from the beginning of the page (due to possible page overlap) */ + return __kdfs_prepare_write(file, page, 0, from + len); } @@ -220,7 +221,8 @@ int kdfs_write_end(struct file *file, kunmap_atomic(kaddr, KM_USER0); } - __kdfs_commit_write(file, page, from, from+copied); + /* try to write from the beginning of the page */ + __kdfs_commit_write(file, page, 0, from + copied); unlock_page(page); page_cache_release(page); diff --git a/fs/kdfs/file.c b/fs/kdfs/file.c index 45a7835..a6dab7a 100644 --- a/fs/kdfs/file.c +++ b/fs/kdfs/file.c @@ -266,6 +266,8 @@ kerrighed_node_t kdfs_iol_file_default_owner (kddm_set_t *kddm_set, struct kdfs_inode *k_inode = kdfs_ilocalfind(my_data->ino); + ASSERT(k_inode); + // check who's the default owner of the object !!! //ret_val = inode_linked_node(k_inode->inode->i_ino); ret_val = kdfs_file_extent_get_page_owner(k_inode, objid); ----------------------------------------------------------------------- Summary of changes: fs/kdfs/address_space.c | 6 ++++-- fs/kdfs/file.c | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) hooks/post-receive -- kdfs |