From: Pierre R. <pr...@us...> - 2009-10-20 11:40:11
|
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 308d9d7359144747056bcfeec4b797d2253d041e (commit) via 3d3a34c2490a0ea96b39ba2acbacfb37b1ddd953 (commit) from 109f85f01d10bf1fd2e3d59f59e49eb0eb62e9ff (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 308d9d7359144747056bcfeec4b797d2253d041e Author: Pierre Riteau <Pie...@ir...> Date: Tue Oct 20 13:38:44 2009 +0200 [FIX] Correct the code using read_inode which is not in the new kernels. Closed ticket #7 diff --git a/fs/kdfs/address_space.c b/fs/kdfs/address_space.c index 0460ec1..a98c5ab 100644 --- a/fs/kdfs/address_space.c +++ b/fs/kdfs/address_space.c @@ -825,7 +825,7 @@ int content_instantiate(kddm_set_t *kddm_set, void *private_data, int master) iput(inode); } else { DEBUG(DBG_INFO, "K_mapping will be retrieve from iget\n"); - inode = iget(k_sb->sb, content_data->ino); + inode = kdfs_getinode(k_sb->sb, content_data->ino); content_data->k_mapping = inode->i_mapping; } if (!content_data->k_mapping) diff --git a/fs/kdfs/inode.c b/fs/kdfs/inode.c index 3cf9616..10ec71a 100644 --- a/fs/kdfs/inode.c +++ b/fs/kdfs/inode.c @@ -1142,7 +1142,7 @@ int kdfs_iol_inode_first_touch(kddm_obj_t *objEntry, if (k_inode->inode) iput(k_inode->inode); else - k_inode->inode = iget(k_sb->sb, objid); + k_inode->inode = kdfs_getinode(k_sb->sb, objid); k_inode->flags = K_INODE_OK; } diff --git a/fs/kdfs/super.c b/fs/kdfs/super.c index 045c077..da2f32e 100644 --- a/fs/kdfs/super.c +++ b/fs/kdfs/super.c @@ -921,14 +921,14 @@ int kdfs_statfs(struct dentry *dfs, struct kstatfs *buf) * @param inode the VFS inode * */ -void kdfs_read_inode(struct inode *inode) +struct inode *kdfs_getinode(struct super_block *sb, unsigned long ino) { + struct inode *inode = NULL; struct file *file = NULL; char *phys_filename = NULL; struct kdfs_physical_inode phys_inode; PRINT_FUNCTION_NAME ; - ASSERT (inode != NULL) ; /* * TODO PRIORITY 2: Adrien @@ -936,6 +936,11 @@ void kdfs_read_inode(struct inode *inode) * For the moment, the workaround consists in using sb->s_fs_info to * reach it. It is probably not the best and cleanest solution. */ + inode = iget_locked(sb, ino); + if (!inode) + return ERR_PTR(-ENOMEM); + if (!(inode->i_state & I_NEW)) + return inode; /* Retrieve the inode meta file */ phys_filename = kmalloc(PATH_MAX, GFP_KERNEL); @@ -975,7 +980,9 @@ void kdfs_read_inode(struct inode *inode) inode->i_ino, ((struct kdfs_super_block*)inode->i_sb->s_fs_info)->k_opt->part_name); kfree(phys_filename); + unlock_new_inode(inode); PRINT_FUNCTION_EXIT; + return inode; } /* @@ -1254,7 +1261,6 @@ out: static struct super_operations kdfs_sops = { .delete_inode = kdfs_delete_inode, .drop_inode = kdfs_drop_inode, - .read_inode = kdfs_read_inode, .show_options = kdfs_show_options, .statfs = kdfs_statfs, .sync_fs = kdfs_sync_fs, diff --git a/fs/kdfs/super.h b/fs/kdfs/super.h index 36fc1f0..f480a74 100644 --- a/fs/kdfs/super.h +++ b/fs/kdfs/super.h @@ -216,6 +216,7 @@ void cleanup_kdfs(void); void kdfs_getphysicalpath(struct kdfs_super_block *k_sb, unsigned long ino, char *physical_filename); int kdfs_write_inode(struct inode *inode); +struct inode *kdfs_getinode(struct super_block *sb, unsigned long ino); /* Get a free inode id from kdfs_sb partition */ ino_t kdfs_get_freeino(struct kdfs_super_block *k_sb); commit 3d3a34c2490a0ea96b39ba2acbacfb37b1ddd953 Author: Pierre Riteau <Pie...@ir...> Date: Tue Oct 20 13:27:11 2009 +0200 [FIX] Correct all include paths to kddm.h diff --git a/fs/kdfs/address_space.c b/fs/kdfs/address_space.c index 65ae72f..0460ec1 100644 --- a/fs/kdfs/address_space.c +++ b/fs/kdfs/address_space.c @@ -13,7 +13,7 @@ #include <linux/pagemap.h> -#include <ctnr/kddm.h> +#include <kddm/kddm.h> #include "super.h" #include "inode.h" diff --git a/fs/kdfs/dir.c b/fs/kdfs/dir.c index 644d248..3c5a67a 100644 --- a/fs/kdfs/dir.c +++ b/fs/kdfs/dir.c @@ -13,7 +13,7 @@ #include <linux/buffer_head.h> -#include <ctnr/kddm.h> +#include <kddm/kddm.h> #include "super.h" #include "inode.h" diff --git a/fs/kdfs/file.c b/fs/kdfs/file.c index ea9898e..a1707bc 100644 --- a/fs/kdfs/file.c +++ b/fs/kdfs/file.c @@ -13,7 +13,7 @@ #include <linux/buffer_head.h> -#include <ctnr/kddm.h> +#include <kddm/kddm.h> #include "super.h" #include "inode.h" ----------------------------------------------------------------------- Summary of changes: fs/kdfs/address_space.c | 4 ++-- fs/kdfs/dir.c | 2 +- fs/kdfs/file.c | 2 +- fs/kdfs/inode.c | 2 +- fs/kdfs/super.c | 12 +++++++++--- fs/kdfs/super.h | 1 + 6 files changed, 15 insertions(+), 8 deletions(-) hooks/post-receive -- kdfs |