diff options
| author | Raghavendra G <raghavendra@zresearch.com> | 2009-05-04 10:33:11 -0700 | 
|---|---|---|
| committer | Anand V. Avati <avati@amp.gluster.com> | 2009-05-05 12:06:58 +0530 | 
| commit | 80c30634da16f7b333d07eeff9839b70d577e39f (patch) | |
| tree | 3e0273450b20d166714f5efd5e47b78dfdf8c2b6 /xlators/performance | |
| parent | 5d417f0f8853e4f17caf25255f98c559f3670434 (diff) | |
io-cache: indentation and logging fixes
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'xlators/performance')
| -rw-r--r-- | xlators/performance/io-cache/src/io-cache.c | 488 | ||||
| -rw-r--r-- | xlators/performance/io-cache/src/io-cache.h | 202 | ||||
| -rw-r--r-- | xlators/performance/io-cache/src/ioc-inode.c | 33 | ||||
| -rw-r--r-- | xlators/performance/io-cache/src/page.c | 212 | 
4 files changed, 426 insertions, 509 deletions
diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c index 3082242b3da..8b36d2af7ab 100644 --- a/xlators/performance/io-cache/src/io-cache.c +++ b/xlators/performance/io-cache/src/io-cache.c @@ -30,15 +30,13 @@  #include <assert.h>  #include <sys/time.h> -static uint32_t -ioc_get_priority (ioc_table_t *table,  -		  const char *path); +uint32_t +ioc_get_priority (ioc_table_t *table, const char *path); -static uint32_t -ioc_get_priority (ioc_table_t *table,  -		  const char *path); +uint32_t +ioc_get_priority (ioc_table_t *table, const char *path); -static inline ioc_inode_t * +inline ioc_inode_t *  ioc_inode_reupdate (ioc_inode_t *ioc_inode)  {  	ioc_table_t *table = ioc_inode->table; @@ -49,12 +47,11 @@ ioc_inode_reupdate (ioc_inode_t *ioc_inode)  	return ioc_inode;  } -static inline ioc_inode_t * -ioc_get_inode (dict_t *dict, -	       char *name) +inline ioc_inode_t * +ioc_get_inode (dict_t *dict, char *name)  {  	ioc_inode_t *ioc_inode = NULL; -	data_t *ioc_inode_data = dict_get (dict, name); +	data_t      *ioc_inode_data = dict_get (dict, name);  	ioc_table_t *table = NULL;  	if (ioc_inode_data) { @@ -76,10 +73,10 @@ ioc_get_inode (dict_t *dict,  int32_t  ioc_inode_need_revalidate (ioc_inode_t *ioc_inode)  { -	int8_t need_revalidate = 0; +	int8_t         need_revalidate = 0;  	struct timeval tv = {0,}; -	int32_t ret = -1; -	ioc_table_t *table = ioc_inode->table; +	int32_t        ret = -1; +	ioc_table_t    *table = ioc_inode->table;  	ret = gettimeofday (&tv, NULL); @@ -100,8 +97,8 @@ int32_t  __ioc_inode_flush (ioc_inode_t *ioc_inode)  {  	ioc_page_t *curr = NULL, *next = NULL; -	int32_t destroy_size = 0; -	int32_t ret = 0; +	int32_t    destroy_size = 0; +	int32_t    ret = 0;  	list_for_each_entry_safe (curr, next, &ioc_inode->pages, pages) {  		ret = ioc_page_destroy (curr); @@ -147,12 +144,8 @@ ioc_inode_flush (ioc_inode_t *ioc_inode)   *   */  int32_t -ioc_utimens_cbk (call_frame_t *frame, -		 void *cookie, -		 xlator_t *this, -		 int32_t op_ret, -		 int32_t op_errno, -		 struct stat *stbuf) +ioc_utimens_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                 int32_t op_ret, int32_t op_errno, struct stat *stbuf)  {  	STACK_UNWIND (frame, op_ret, op_errno, stbuf);  	return 0; @@ -168,10 +161,8 @@ ioc_utimens_cbk (call_frame_t *frame,   *   */  int32_t -ioc_utimens (call_frame_t *frame, -	     xlator_t *this, -	     loc_t *loc, -	     struct timespec *tv) +ioc_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc, +             struct timespec *tv)  {  	uint64_t ioc_inode = 0;  	inode_ctx_get (loc->inode, this, &ioc_inode); @@ -179,36 +170,30 @@ ioc_utimens (call_frame_t *frame,  	if (ioc_inode)  		ioc_inode_flush ((ioc_inode_t *)(long)ioc_inode); -	STACK_WIND (frame, ioc_utimens_cbk, -		    FIRST_CHILD (this), -		    FIRST_CHILD (this)->fops->utimens, -		    loc, tv); +	STACK_WIND (frame, ioc_utimens_cbk, FIRST_CHILD (this), +                    FIRST_CHILD (this)->fops->utimens, loc, tv); +  	return 0;  }  int32_t -ioc_lookup_cbk (call_frame_t *frame, -		void *cookie, -		xlator_t *this, -		int32_t op_ret, -		int32_t op_errno, -		inode_t *inode, -		struct stat *stbuf, -		dict_t *dict) +ioc_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +		int32_t op_ret,	int32_t op_errno, inode_t *inode, +		struct stat *stbuf, dict_t *dict)  { -	ioc_inode_t *ioc_inode = NULL; -	ioc_local_t *local = frame->local; -	ioc_table_t *table = this->private; -	ioc_page_t  *page = NULL; -	data_t      *content_data = NULL; -	char        *src = NULL; -	char         need_unref = 0; -	uint8_t      cache_still_valid = 0; -	uint32_t     weight = 0; -	uint64_t     tmp_ioc_inode = 0; -	char        *buf = NULL; -	char        *tmp = NULL; -	int          i; +	ioc_inode_t   *ioc_inode = NULL; +	ioc_local_t   *local = frame->local; +	ioc_table_t   *table = this->private; +	ioc_page_t    *page = NULL; +	data_t        *content_data = NULL; +	char          *src = NULL; +	char          need_unref = 0; +	uint8_t       cache_still_valid = 0; +	uint32_t      weight = 0; +	uint64_t      tmp_ioc_inode = 0; +	char          *buf = NULL; +	char          *tmp = NULL; +	int           i;          struct iobref *iobref = NULL;          struct iobuf  *iobuf = NULL; @@ -302,12 +287,11 @@ ioc_lookup_cbk (call_frame_t *frame,  						"page not present");  					ioc_inode_unlock (ioc_inode); -					STACK_WIND (frame, -						    ioc_lookup_cbk, -						    FIRST_CHILD (this), +					STACK_WIND (frame, ioc_lookup_cbk, +                                                    FIRST_CHILD (this),  						    FIRST_CHILD (this)->fops->lookup,  						    &local->file_loc, -						    local->xattr_req); +                                                    local->xattr_req);  					return 0;  				}   				buf = CALLOC (1, stbuf->st_size); @@ -344,7 +328,7 @@ ioc_lookup_cbk (call_frame_t *frame,  		}  	} - out: +out:  	STACK_UNWIND (frame, op_ret, op_errno, inode, stbuf, dict);  	if (need_unref) { @@ -360,19 +344,17 @@ ioc_lookup_cbk (call_frame_t *frame,  }  int32_t  -ioc_lookup (call_frame_t *frame, -	    xlator_t *this, -	    loc_t *loc, +ioc_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc,  	    dict_t *xattr_req)  { -	uint64_t content_limit = 0; +	uint64_t    content_limit = 0; +        uint64_t    tmp_ioc_inode = 0; +        ioc_inode_t *ioc_inode = NULL; +        ioc_page_t  *page = NULL; +        ioc_local_t *local = NULL;  	if (GF_FILE_CONTENT_REQUESTED(xattr_req, &content_limit)) { -		uint64_t     tmp_ioc_inode = 0; -		ioc_inode_t *ioc_inode = NULL; -		ioc_page_t  *page = NULL; -		ioc_local_t *local = CALLOC (1, sizeof (*local)); - +                local = CALLOC (1, sizeof (*local));  		local->need_xattr = content_limit;  		local->file_loc.path = loc->path;  		local->file_loc.inode = loc->inode; @@ -395,12 +377,9 @@ ioc_lookup (call_frame_t *frame,  		}  	} -	STACK_WIND (frame, -		    ioc_lookup_cbk, -		    FIRST_CHILD (this), -		    FIRST_CHILD (this)->fops->lookup, -		    loc, -		    xattr_req); +	STACK_WIND (frame, ioc_lookup_cbk, FIRST_CHILD (this), +		    FIRST_CHILD (this)->fops->lookup, loc, xattr_req); +  	return 0;  } @@ -413,8 +392,7 @@ ioc_lookup (call_frame_t *frame,   *   */  int32_t -ioc_forget (xlator_t *this, -	    inode_t *inode) +ioc_forget (xlator_t *this, inode_t *inode)  {  	uint64_t ioc_inode = 0; @@ -439,19 +417,17 @@ ioc_forget (xlator_t *this,   *   */  int32_t -ioc_cache_validate_cbk (call_frame_t *frame, -			void *cookie, -			xlator_t *this, -			int32_t op_ret, -			int32_t op_errno, -			struct stat *stbuf) +ioc_cache_validate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +			int32_t op_ret, int32_t op_errno, struct stat *stbuf)  { -	ioc_local_t *local = frame->local; +	ioc_local_t *local = NULL;  	ioc_inode_t *ioc_inode = NULL; -	size_t destroy_size = 0; -	struct stat *local_stbuf = stbuf; +	size_t      destroy_size = 0; +	struct stat *local_stbuf = NULL; +        local = frame->local;  	ioc_inode = local->inode; +        local_stbuf = stbuf;  	if ((op_ret == -1) ||   	    ((op_ret >= 0) && !ioc_cache_still_valid(ioc_inode, stbuf))) { @@ -501,12 +477,11 @@ ioc_cache_validate_cbk (call_frame_t *frame,  	return 0;  } -static int32_t -ioc_wait_on_inode (ioc_inode_t *ioc_inode,  -		   ioc_page_t *page) +int32_t +ioc_wait_on_inode (ioc_inode_t *ioc_inode, ioc_page_t *page)  {  	ioc_waitq_t *waiter = NULL, *trav = NULL; -	uint32_t page_found = 0; +	uint32_t    page_found = 0;  	trav = ioc_inode->waitq; @@ -537,14 +512,12 @@ ioc_wait_on_inode (ioc_inode_t *ioc_inode,   * @fd:   *   */ -static int32_t -ioc_cache_validate (call_frame_t *frame, -		    ioc_inode_t *ioc_inode, -		    fd_t *fd, +int32_t +ioc_cache_validate (call_frame_t *frame, ioc_inode_t *ioc_inode, fd_t *fd,  		    ioc_page_t *page)  {  	call_frame_t *validate_frame = NULL; -	ioc_local_t *validate_local = NULL; +	ioc_local_t  *validate_local = NULL;  	validate_local = CALLOC (1, sizeof (ioc_local_t));  	ERR_ABORT (validate_local); @@ -553,22 +526,20 @@ ioc_cache_validate (call_frame_t *frame,  	validate_local->inode = ioc_inode;  	validate_frame->local = validate_local; -	STACK_WIND (validate_frame, -		    ioc_cache_validate_cbk, -		    FIRST_CHILD (frame->this), -		    FIRST_CHILD (frame->this)->fops->fstat, -		    fd); +	STACK_WIND (validate_frame, ioc_cache_validate_cbk, +                    FIRST_CHILD (frame->this), +                    FIRST_CHILD (frame->this)->fops->fstat, fd);  	return 0;  } -static inline uint32_t -is_match (const char *path, -	  const char *pattern) +inline uint32_t +is_match (const char *path, const char *pattern)  { -	char *pathname = strdup (path); +	char    *pathname = NULL;  	int32_t ret = 0; +        pathname = strdup (path);  	ret = fnmatch (pattern, path, FNM_NOESCAPE);  	free (pathname); @@ -576,11 +547,10 @@ is_match (const char *path,  	return (ret == 0);  } -static uint32_t -ioc_get_priority (ioc_table_t *table,  -		  const char *path) +uint32_t +ioc_get_priority (ioc_table_t *table, const char *path)  { -	uint32_t priority = 0; +	uint32_t            priority = 0;  	struct ioc_priority *curr = NULL;  	list_for_each_entry (curr, &table->priority_list, list) { @@ -603,20 +573,21 @@ ioc_get_priority (ioc_table_t *table,   *   */  int32_t -ioc_open_cbk (call_frame_t *frame, -	      void *cookie, -	      xlator_t *this, -	      int32_t op_ret, -	      int32_t op_errno, -	      fd_t *fd) +ioc_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, +	      int32_t op_errno, fd_t *fd)  { -	uint64_t     tmp_ioc_inode = 0; -	ioc_local_t *local = frame->local; -	ioc_table_t *table = this->private; +	uint64_t    tmp_ioc_inode = 0; +	ioc_local_t *local = NULL; +	ioc_table_t *table = NULL;  	ioc_inode_t *ioc_inode = NULL; -	inode_t *inode = local->file_loc.inode; -	uint32_t weight = 0; -	const char *path = local->file_loc.path; +	inode_t     *inode = NULL; +	uint32_t    weight = 0; +	const char  *path = NULL; + +        local = frame->local; +        table = this->private; +        inode = local->file_loc.inode; +        path = local->file_loc.path;  	if (op_ret != -1) {  		/* look for ioc_inode corresponding to this fd */ @@ -626,12 +597,14 @@ ioc_open_cbk (call_frame_t *frame,                          ioc_inode = (ioc_inode_t *)(long)tmp_ioc_inode;                          if (!ioc_inode) { -                                /* this is the first time someone is opening this  -                                   file, assign weight  +                                /* +                                  this is the first time someone is opening +                                  this file, assign weight                                   */                                  weight = ioc_get_priority (table, path); -                                ioc_inode = ioc_inode_update (table, inode, weight); +                                ioc_inode = ioc_inode_update (table, inode, +                                                              weight);                                  __inode_ctx_put (fd->inode, this,                                                    (uint64_t)(long)ioc_inode);                          } else { @@ -648,8 +621,8 @@ ioc_open_cbk (call_frame_t *frame,  		/* If mandatory locking has been enabled on this file,  		   we disable caching on it */ -		if (((inode->st_mode & S_ISGID) &&  -		     !(inode->st_mode & S_IXGRP))) { +		if (((inode->st_mode & S_ISGID) +                     && !(inode->st_mode & S_IXGRP))) {  			fd_ctx_set (fd, this, 1);  		} @@ -684,20 +657,19 @@ ioc_open_cbk (call_frame_t *frame,   *   */  int32_t -ioc_create_cbk (call_frame_t *frame, -		void *cookie, -		xlator_t *this, -		int32_t op_ret, -		int32_t op_errno, -		fd_t *fd, -		inode_t *inode, -		struct stat *buf) +ioc_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                int32_t op_ret,	int32_t op_errno, fd_t *fd, +		inode_t *inode,	struct stat *buf)  { -	ioc_local_t *local = frame->local; -	ioc_table_t *table = this->private; +	ioc_local_t *local = NULL; +	ioc_table_t *table = NULL;  	ioc_inode_t *ioc_inode = NULL; -	uint32_t weight = 0; -	const char *path = local->file_loc.path; +	uint32_t    weight = 0; +	const char  *path = NULL; + +        local = frame->local; +        table = this->private; +        path = local->file_loc.path;  	if (op_ret != -1) {  		{ @@ -709,8 +681,10 @@ ioc_create_cbk (call_frame_t *frame,                          inode_ctx_put (fd->inode, this,                                         (uint64_t)(long)ioc_inode);  		} -		/* If mandatory locking has been enabled on this file, -		   we disable caching on it */ +		/* +                 * If mandatory locking has been enabled on this file, +                 * we disable caching on it +                 */  		if ((inode->st_mode & S_ISGID) &&   		    !(inode->st_mode & S_IXGRP)) {  			fd_ctx_set (fd, this, 1); @@ -718,7 +692,8 @@ ioc_create_cbk (call_frame_t *frame,  		/* If O_DIRECT open, we disable caching on it */  		if (local->flags & O_DIRECT){ -			/* O_DIRECT is only for one fd, not the inode  +			/* +                         * O_DIRECT is only for one fd, not the inode   			 * as a whole   			 */  			fd_ctx_set (fd, this, 1); @@ -743,14 +718,13 @@ ioc_create_cbk (call_frame_t *frame,   *   */  int32_t -ioc_open (call_frame_t *frame, -	  xlator_t *this, -	  loc_t *loc, -	  int32_t flags, +ioc_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags,  	  fd_t *fd)  { -	ioc_local_t *local = CALLOC (1, sizeof (ioc_local_t)); +	ioc_local_t *local = NULL; + +        local = CALLOC (1, sizeof (ioc_local_t));  	ERR_ABORT (local);  	local->flags = flags; @@ -759,13 +733,8 @@ ioc_open (call_frame_t *frame,  	frame->local = local; -	STACK_WIND (frame, -		    ioc_open_cbk, -		    FIRST_CHILD(this), -		    FIRST_CHILD(this)->fops->open, -		    loc, -		    flags, -		    fd); +	STACK_WIND (frame, ioc_open_cbk, FIRST_CHILD(this), +                    FIRST_CHILD(this)->fops->open, loc, flags, fd);  	return 0;  } @@ -781,24 +750,21 @@ ioc_open (call_frame_t *frame,   *   */  int32_t -ioc_create (call_frame_t *frame, -	    xlator_t *this, -	    loc_t *loc, -	    int32_t flags, -	    mode_t mode, -	    fd_t *fd) +ioc_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, +	    mode_t mode, fd_t *fd)  { -	ioc_local_t *local = CALLOC (1, sizeof (ioc_local_t)); +	ioc_local_t *local = NULL; +         +        local = CALLOC (1, sizeof (ioc_local_t));  	ERR_ABORT (local);  	local->flags = flags;  	local->file_loc.path = loc->path;  	frame->local = local; -	STACK_WIND (frame, ioc_create_cbk, -		    FIRST_CHILD(this), -		    FIRST_CHILD(this)->fops->create, -		    loc, flags, mode, fd); +	STACK_WIND (frame, ioc_create_cbk, FIRST_CHILD(this), +		    FIRST_CHILD(this)->fops->create, loc, flags, mode, fd); +  	return 0;  } @@ -814,8 +780,7 @@ ioc_create (call_frame_t *frame,   *   */  int32_t -ioc_release (xlator_t *this, -	     fd_t *fd) +ioc_release (xlator_t *this, fd_t *fd)  {  	return 0;  } @@ -832,14 +797,9 @@ ioc_release (xlator_t *this,   *   */   int32_t -ioc_readv_disabled_cbk (call_frame_t *frame,  -			void *cookie, -			xlator_t *this, -			int32_t op_ret, -			int32_t op_errno, -			struct iovec *vector, -			int32_t count, -			struct stat *stbuf, +ioc_readv_disabled_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                        int32_t op_ret,	int32_t op_errno, struct iovec *vector, +			int32_t count, struct stat *stbuf,                          struct iobref *iobref)  {  	STACK_UNWIND (frame, op_ret, op_errno, vector, count, stbuf, iobref); @@ -865,31 +825,34 @@ ioc_need_prune (ioc_table_t *table)  }  /* - * dispatch_requests - + * ioc_dispatch_requests -   *    * @frame:   * @inode:   *   *    */ -static void -dispatch_requests (call_frame_t *frame, -		   ioc_inode_t *ioc_inode, -		   fd_t *fd, -		   off_t offset, -		   size_t size) +void +ioc_dispatch_requests (call_frame_t *frame, ioc_inode_t *ioc_inode, fd_t *fd, +		   off_t offset, size_t size)  { -	ioc_local_t *local = frame->local; -	ioc_table_t *table = ioc_inode->table; +	ioc_local_t *local = NULL; +	ioc_table_t *table = NULL;  	ioc_page_t  *trav = NULL;  	ioc_waitq_t *waitq = NULL; -	off_t   rounded_offset = 0; -	off_t   rounded_end = 0; -	off_t   trav_offset = 0; -	int32_t fault = 0; -	int8_t  need_validate = 0; -	int8_t  might_need_validate = 0;  /* if a page exists, do we need  -					    to validate it? */ +	off_t       rounded_offset = 0; +	off_t       rounded_end = 0; +	off_t       trav_offset = 0; +	int32_t     fault = 0; +        size_t      trav_size = 0; +        off_t       local_offset = 0; +	int8_t      need_validate = 0; +	int8_t      might_need_validate = 0;  /* +                                               * if a page exists, do we need  +                                               * to validate it? +                                               */ +        local = frame->local; +        table = ioc_inode->table;  	rounded_offset = floor (offset, table->page_size);  	rounded_end = roof (offset + size, table->page_size); @@ -908,9 +871,6 @@ dispatch_requests (call_frame_t *frame,  	might_need_validate = ioc_inode_need_revalidate (ioc_inode);  	while (trav_offset < rounded_end) { -		size_t trav_size = 0; -		off_t local_offset = 0; -  		ioc_inode_lock (ioc_inode);  		//{ @@ -927,7 +887,7 @@ dispatch_requests (call_frame_t *frame,  			fault = 1;  			if (!trav) {  				gf_log (frame->this->name, GF_LOG_CRITICAL, -					"ioc_page_create returned NULL"); +					"out of memory");  			}  		}  @@ -997,40 +957,31 @@ dispatch_requests (call_frame_t *frame,   *   */  int32_t -ioc_readv (call_frame_t *frame, -	   xlator_t *this, -	   fd_t *fd, -	   size_t size, -	   off_t offset) +ioc_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, +	   size_t size, off_t offset)  {  	uint64_t     tmp_ioc_inode = 0; -	ioc_inode_t *ioc_inode = NULL; -	ioc_local_t *local = NULL; +	ioc_inode_t  *ioc_inode = NULL; +	ioc_local_t  *local = NULL;  	uint32_t     weight = 0;  	inode_ctx_get (fd->inode, this, &tmp_ioc_inode);  	ioc_inode = (ioc_inode_t *)(long)tmp_ioc_inode;  	if (!ioc_inode) {  		/* caching disabled, go ahead with normal readv */ -		STACK_WIND (frame,  -			    ioc_readv_disabled_cbk, -			    FIRST_CHILD (frame->this),  -			    FIRST_CHILD (frame->this)->fops->readv, -			    fd,  -			    size,  -			    offset); +		STACK_WIND (frame, ioc_readv_disabled_cbk, +                            FIRST_CHILD (frame->this),  +			    FIRST_CHILD (frame->this)->fops->readv, fd, size, +                            offset);  		return 0;  	}  	if (!fd_ctx_get (fd, this, NULL)) {  		/* disable caching for this fd, go ahead with normal readv */ -		STACK_WIND (frame,  -			    ioc_readv_disabled_cbk, -			    FIRST_CHILD (frame->this),  -			    FIRST_CHILD (frame->this)->fops->readv, -			    fd,  -			    size,  -			    offset); +		STACK_WIND (frame, ioc_readv_disabled_cbk, +                            FIRST_CHILD (frame->this),  +			    FIRST_CHILD (frame->this)->fops->readv, fd, size, +                            offset);  		return 0;  	} @@ -1058,7 +1009,7 @@ ioc_readv (call_frame_t *frame,  	}  	ioc_table_unlock (ioc_inode->table); -	dispatch_requests (frame, ioc_inode, fd, offset, size); +	ioc_dispatch_requests (frame, ioc_inode, fd, offset, size);  	return 0;  } @@ -1074,16 +1025,13 @@ ioc_readv (call_frame_t *frame,   *   */  int32_t -ioc_writev_cbk (call_frame_t *frame, -		void *cookie, -		xlator_t *this, -		int32_t op_ret, -		int32_t op_errno, -		struct stat *stbuf) +ioc_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +		int32_t op_ret,	int32_t op_errno, struct stat *stbuf)  { -	ioc_local_t *local     = frame->local; -	uint64_t     ioc_inode = 0; +	ioc_local_t *local     = NULL; +	uint64_t    ioc_inode = 0; +        local = frame->local;  	inode_ctx_get (local->fd->inode, this, &ioc_inode);  	if (ioc_inode) @@ -1105,16 +1053,12 @@ ioc_writev_cbk (call_frame_t *frame,   *   */  int32_t -ioc_writev (call_frame_t *frame, -	    xlator_t *this, -	    fd_t *fd, -	    struct iovec *vector, -	    int32_t count, -	    off_t offset, +ioc_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, +	    struct iovec *vector, int32_t count, off_t offset,              struct iobref *iobref)  {  	ioc_local_t *local     = NULL; -	uint64_t     ioc_inode = 0; +	uint64_t    ioc_inode = 0;  	local = CALLOC (1, sizeof (ioc_local_t));  	ERR_ABORT (local); @@ -1127,14 +1071,8 @@ ioc_writev (call_frame_t *frame,  	if (ioc_inode)  		ioc_inode_flush ((ioc_inode_t *)(long)ioc_inode); -	STACK_WIND (frame, -		    ioc_writev_cbk, -		    FIRST_CHILD(this), -		    FIRST_CHILD(this)->fops->writev, -		    fd, -		    vector, -		    count, -		    offset, +	STACK_WIND (frame, ioc_writev_cbk, FIRST_CHILD(this), +		    FIRST_CHILD(this)->fops->writev, fd, vector, count, offset,                      iobref);  	return 0; @@ -1152,12 +1090,8 @@ ioc_writev (call_frame_t *frame,   *   */  int32_t  -ioc_truncate_cbk (call_frame_t *frame, -		  void *cookie, -		  xlator_t *this, -		  int32_t op_ret, -		  int32_t op_errno, -		  struct stat *buf) +ioc_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                  int32_t op_ret, int32_t op_errno, struct stat *buf)  {  	STACK_UNWIND (frame, op_ret, op_errno, buf); @@ -1174,10 +1108,7 @@ ioc_truncate_cbk (call_frame_t *frame,   *   */  int32_t  -ioc_truncate (call_frame_t *frame, -	      xlator_t *this, -	      loc_t *loc, -	      off_t offset) +ioc_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset)  {  	uint64_t ioc_inode = 0;  	inode_ctx_get (loc->inode, this, &ioc_inode); @@ -1185,12 +1116,8 @@ ioc_truncate (call_frame_t *frame,  	if (ioc_inode)  		ioc_inode_flush ((ioc_inode_t *)(long)ioc_inode); -	STACK_WIND (frame, -		    ioc_truncate_cbk, -		    FIRST_CHILD(this), -		    FIRST_CHILD(this)->fops->truncate, -		    loc, -		    offset); +	STACK_WIND (frame, ioc_truncate_cbk, FIRST_CHILD(this), +		    FIRST_CHILD(this)->fops->truncate, loc, offset);  	return 0;  } @@ -1204,10 +1131,7 @@ ioc_truncate (call_frame_t *frame,   *   */  int32_t -ioc_ftruncate (call_frame_t *frame, -	       xlator_t *this, -	       fd_t *fd, -	       off_t offset) +ioc_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset)  {  	uint64_t ioc_inode = 0;  	inode_ctx_get (fd->inode, this, &ioc_inode); @@ -1215,41 +1139,30 @@ ioc_ftruncate (call_frame_t *frame,  	if (ioc_inode)  		ioc_inode_flush ((ioc_inode_t *)(long)ioc_inode); -	STACK_WIND (frame, -		    ioc_truncate_cbk, -		    FIRST_CHILD(this), -		    FIRST_CHILD(this)->fops->ftruncate, -		    fd, -		    offset); +	STACK_WIND (frame, ioc_truncate_cbk, FIRST_CHILD(this), +                    FIRST_CHILD(this)->fops->ftruncate, fd, offset);  	return 0;  }  int32_t -ioc_lk_cbk (call_frame_t *frame, -	    void *cookie, -	    xlator_t *this, -	    int32_t op_ret, -	    int32_t op_errno, -	    struct flock *lock) +ioc_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, +	    int32_t op_errno, struct flock *lock)  {  	STACK_UNWIND (frame, op_ret, op_errno, lock);  	return 0;  }  int32_t  -ioc_lk (call_frame_t *frame, -	xlator_t *this, -	fd_t *fd, -	int32_t cmd, -	struct flock *lock) +ioc_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, +        struct flock *lock)  { -	ioc_inode_t *ioc_inode = NULL; +	ioc_inode_t  *ioc_inode = NULL;  	uint64_t     tmp_inode = 0;  	inode_ctx_get (fd->inode, this, &tmp_inode);  	ioc_inode = (ioc_inode_t *)(long)tmp_inode;  	if (!ioc_inode) { -		gf_log (this->name, GF_LOG_ERROR, +		gf_log (this->name, GF_LOG_DEBUG,  			"inode context is NULL: returning EBADFD");  		STACK_UNWIND (frame, -1, EBADFD, NULL);  		return 0; @@ -1261,26 +1174,27 @@ ioc_lk (call_frame_t *frame,  	}  	ioc_inode_unlock (ioc_inode); -	STACK_WIND (frame, ioc_lk_cbk,  -		    FIRST_CHILD (this), +	STACK_WIND (frame, ioc_lk_cbk, FIRST_CHILD (this),  		    FIRST_CHILD (this)->fops->lk, fd, cmd, lock); +  	return 0;  }  int32_t  ioc_get_priority_list (const char *opt_str, struct list_head *first)  { -	int32_t max_pri = 0; -	char *tmp_str = NULL; -	char *tmp_str1 = NULL; -	char *tmp_str2 = NULL; -	char *dup_str = NULL; -	char *stripe_str = NULL; -	char *pattern = NULL; -	char *priority = NULL; -	char *string = strdup (opt_str); +	int32_t             max_pri = 0; +	char                *tmp_str = NULL; +	char                *tmp_str1 = NULL; +	char                *tmp_str2 = NULL; +	char                *dup_str = NULL; +	char                *stripe_str = NULL; +	char                *pattern = NULL; +	char                *priority = NULL; +	char                *string = NULL;  	struct ioc_priority *curr = NULL; +        string = strdup (opt_str);  	/* Get the pattern for cache priority.   	 * "option priority *.jpg:1,abc*:2" etc   	 */ @@ -1326,9 +1240,9 @@ int32_t  init (xlator_t *this)  {  	ioc_table_t *table; -	dict_t *options = this->options; -	uint32_t index = 0; -	char *cache_size_string = NULL; +	dict_t      *options = this->options; +	uint32_t    index = 0; +	char        *cache_size_string = NULL;  	if (!this->children || this->children->next) {  		gf_log (this->name, GF_LOG_ERROR, diff --git a/xlators/performance/io-cache/src/io-cache.h b/xlators/performance/io-cache/src/io-cache.h index ffa7d7dcd6b..954b3fec4b9 100644 --- a/xlators/performance/io-cache/src/io-cache.h +++ b/xlators/performance/io-cache/src/io-cache.h @@ -1,20 +1,20 @@  /* -   Copyright (c) 2007-2009 Z RESEARCH, Inc. <http://www.zresearch.com> -   This file is part of GlusterFS. - -   GlusterFS is free software; you can redistribute it and/or modify -   it under the terms of the GNU General Public License as published -   by the Free Software Foundation; either version 3 of the License, -   or (at your option) any later version. - -   GlusterFS is distributed in the hope that it will be useful, but -   WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   General Public License for more details. - -   You should have received a copy of the GNU General Public License -   along with this program.  If not, see -   <http://www.gnu.org/licenses/>. +  Copyright (c) 2007-2009 Z RESEARCH, Inc. <http://www.zresearch.com> +  This file is part of GlusterFS. + +  GlusterFS is free software; you can redistribute it and/or modify +  it under the terms of the GNU General Public License as published +  by the Free Software Foundation; either version 3 of the License, +  or (at your option) any later version. + +  GlusterFS is distributed in the hope that it will be useful, but +  WITHOUT ANY WARRANTY; without even the implied warranty of +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +  General Public License for more details. + +  You should have received a copy of the GNU General Public License +  along with this program.  If not, see +  <http://www.gnu.org/licenses/>.  */  #ifndef __IO_CACHE_H @@ -47,8 +47,8 @@ struct ioc_inode;  struct ioc_priority {  	struct list_head list; -	char *pattern; -	uint32_t priority; +	char             *pattern; +	uint32_t         priority;  };  /* @@ -60,9 +60,9 @@ struct ioc_priority {   */  struct ioc_waitq {  	struct ioc_waitq *next; -	void *data; -	off_t pending_offset; -	size_t pending_size; +	void             *data; +	off_t            pending_offset; +	size_t           pending_size;  };  /* @@ -71,32 +71,38 @@ struct ioc_waitq {   */  struct ioc_fill {  	struct list_head list;  /* list of ioc_fill structures of a frame */ -	off_t offset;           -	size_t size;            -	struct iovec *vector;   -	int32_t count; -	struct iobref *iobref; +	off_t            offset;           +	size_t           size;            +	struct iovec     *vector;   +	int32_t          count; +	struct iobref    *iobref;  };  struct ioc_local { -	mode_t mode; -	int32_t flags; -	loc_t file_loc; -	off_t offset; -	size_t size; -	int32_t op_ret; -	int32_t op_errno; +	mode_t           mode; +	int32_t          flags; +	loc_t            file_loc; +	off_t            offset; +	size_t           size; +	int32_t          op_ret; +	int32_t          op_errno;  	struct list_head fill_list;      /* list of ioc_fill structures */ -	off_t pending_offset;            /* offset from this frame should continue */ -	size_t pending_size;             /* size of data this frame is waiting on */ +	off_t            pending_offset; /*  +                                          * offset from this frame should +                                          * continue +                                          */ +	size_t           pending_size;   /*  +                                          * size of data this frame is waiting +                                          * on +                                          */  	struct ioc_inode *inode; -	int32_t wait_count; -	pthread_mutex_t local_lock; +	int32_t          wait_count; +	pthread_mutex_t  local_lock;  	struct ioc_waitq *waitq; -	void *stub; -	fd_t *fd; -	int32_t need_xattr; -	dict_t *xattr_req; +	void             *stub; +	fd_t             *fd; +	int32_t          need_xattr; +	dict_t           *xattr_req;  };  /* @@ -104,48 +110,59 @@ struct ioc_local {   *   */  struct ioc_page { -	struct list_head pages; -	struct list_head page_lru; -	struct ioc_inode *inode;   /* inode this page belongs to */ +	struct list_head    pages; +	struct list_head    page_lru; +	struct ioc_inode    *inode;   /* inode this page belongs to */  	struct ioc_priority *priority; -	char dirty; -	char ready; -	struct iovec *vector; -	int32_t count; -	off_t offset; -	size_t size; -	struct ioc_waitq *waitq; -	struct iobref *iobref; -	pthread_mutex_t page_lock; +	char                dirty; +	char                ready; +	struct iovec        *vector; +	int32_t             count; +	off_t               offset; +	size_t              size; +	struct ioc_waitq    *waitq; +	struct iobref       *iobref; +	pthread_mutex_t     page_lock;  };  struct ioc_inode {  	struct ioc_table *table;  	struct list_head pages;      /* list of pages of this inode */ -	struct list_head inode_list; /* list of inodes, maintained by io-cache translator */ +	struct list_head inode_list; /* +                                      * list of inodes, maintained by io-cache +                                      * translator +                                      */  	struct list_head inode_lru;  	struct list_head page_lru;  	struct ioc_waitq *waitq; -	pthread_mutex_t inode_lock; -	uint32_t weight;             /* weight of the inode, increases on each read */ -	time_t mtime;             /* mtime of the server file when last cached */ -	struct timeval tv;           /* time-stamp at last re-validate */ +	pthread_mutex_t  inode_lock; +	uint32_t         weight;      /* +                                       * weight of the inode, increases on each +                                       * read +                                       */ +	time_t           mtime;       /* +                                       * mtime of the server file when last +                                       * cached +                                       */ +	struct timeval   tv;          /* +                                       * time-stamp at last re-validate +                                       */  };  struct ioc_table { -	uint64_t page_size; -	uint64_t cache_size; -	uint64_t cache_used; +	uint64_t         page_size; +	uint64_t         cache_size; +	uint64_t         cache_used;  	struct list_head inodes; /* list of inodes cached */  	struct list_head active;   	struct list_head *inode_lru;  	struct list_head priority_list; -	int32_t readv_count; -	pthread_mutex_t table_lock; -	xlator_t *xl; -	uint32_t inode_count; -	int32_t cache_timeout; -	int32_t max_pri; +	int32_t          readv_count; +	pthread_mutex_t  table_lock; +	xlator_t         *xl; +	uint32_t         inode_count; +	int32_t          cache_timeout; +	int32_t          max_pri;  };  typedef struct ioc_table ioc_table_t; @@ -162,33 +179,22 @@ char *  ptr_to_str (void *ptr);  int32_t  -ioc_readv_disabled_cbk (call_frame_t *frame, -			void *cookie, -			xlator_t *this, -			int32_t op_ret, -			int32_t op_errno, -			struct iovec *vector, -			int32_t count, -			struct stat *stbuf, +ioc_readv_disabled_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                        int32_t op_ret,	int32_t op_errno, struct iovec *vector, +			int32_t count, struct stat *stbuf,                          struct iobref *iobref);  ioc_page_t * -ioc_page_get (ioc_inode_t *ioc_inode, -	      off_t offset); +ioc_page_get (ioc_inode_t *ioc_inode, off_t offset);  ioc_page_t * -ioc_page_create (ioc_inode_t *ioc_inode, -		 off_t offset); +ioc_page_create (ioc_inode_t *ioc_inode, off_t offset);  void -ioc_page_fault (ioc_inode_t *ioc_inode, -		call_frame_t *frame, -		fd_t *fd, +ioc_page_fault (ioc_inode_t *ioc_inode,	call_frame_t *frame, fd_t *fd,  		off_t offset);  void -ioc_wait_on_page (ioc_page_t *page, -		  call_frame_t *frame, -		  off_t offset, +ioc_wait_on_page (ioc_page_t *page, call_frame_t *frame, off_t offset,  		  size_t size);  ioc_waitq_t * @@ -198,9 +204,8 @@ void  ioc_page_flush (ioc_page_t *page);  ioc_waitq_t * -ioc_page_error (ioc_page_t *page, -		int32_t op_ret, -		int32_t op_errno); +ioc_page_error (ioc_page_t *page, int32_t op_ret, int32_t op_errno); +  void  ioc_page_purge (ioc_page_t *page); @@ -211,9 +216,7 @@ void  ioc_waitq_return (ioc_waitq_t *waitq);  void -ioc_frame_fill (ioc_page_t *page, -		call_frame_t *frame, -		off_t offset, +ioc_frame_fill (ioc_page_t *page, call_frame_t *frame, off_t offset,  		size_t size);  #define ioc_inode_lock(ioc_inode)					\ @@ -293,16 +296,13 @@ time_elapsed (struct timeval *now,  }  ioc_inode_t * -ioc_inode_search (ioc_table_t *table, -		  inode_t *inode); +ioc_inode_search (ioc_table_t *table, inode_t *inode);  void   ioc_inode_destroy (ioc_inode_t *ioc_inode);  ioc_inode_t * -ioc_inode_update (ioc_table_t *table, -		  inode_t *inode, -		  uint32_t weight); +ioc_inode_update (ioc_table_t *table, inode_t *inode, uint32_t weight);  int64_t   ioc_page_destroy (ioc_page_t *page); @@ -314,13 +314,11 @@ void  ioc_inode_flush (ioc_inode_t *ioc_inode);  void -ioc_inode_wakeup (call_frame_t *frame,  -		  ioc_inode_t *ioc_inode,  -		  struct stat *stbuf); +ioc_inode_wakeup (call_frame_t *frame, ioc_inode_t *ioc_inode, +                  struct stat *stbuf);  int8_t -ioc_cache_still_valid (ioc_inode_t *ioc_inode, -		       struct stat *stbuf); +ioc_cache_still_valid (ioc_inode_t *ioc_inode, struct stat *stbuf);  int32_t  ioc_prune (ioc_table_t *table); @@ -328,4 +326,4 @@ ioc_prune (ioc_table_t *table);  int32_t  ioc_need_prune (ioc_table_t *table); -#endif /* __READ_AHEAD_H */ +#endif /* __IO_CACHE_H */ diff --git a/xlators/performance/io-cache/src/ioc-inode.c b/xlators/performance/io-cache/src/ioc-inode.c index 917391de5ab..c984ce1337f 100644 --- a/xlators/performance/io-cache/src/ioc-inode.c +++ b/xlators/performance/io-cache/src/ioc-inode.c @@ -33,7 +33,9 @@  void *  str_to_ptr (char *string)  { -	void *ptr = (void *)strtoul (string, NULL, 16); +	void *ptr = NULL; + +        ptr = (void *)strtoul (string, NULL, 16);  	return ptr;  } @@ -46,23 +48,23 @@ str_to_ptr (char *string)  char *  ptr_to_str (void *ptr)  { -	char *str; +	char *str = NULL;  	asprintf (&str, "%p", ptr);  	return str;  }  void -ioc_inode_wakeup (call_frame_t *frame, -		  ioc_inode_t *ioc_inode,  -		  struct stat *stbuf) +ioc_inode_wakeup (call_frame_t *frame, ioc_inode_t *ioc_inode,  +                  struct stat *stbuf)  {  	ioc_waitq_t *waiter = NULL, *waited = NULL;  	ioc_waitq_t *page_waitq = NULL; -	int8_t cache_still_valid = 1; -	ioc_local_t *local = frame->local; -	int8_t need_fault = 0; -	ioc_page_t *waiter_page = NULL; +	int8_t      cache_still_valid = 1; +	ioc_local_t *local = NULL; +	int8_t      need_fault = 0; +	ioc_page_t  *waiter_page = NULL; +        local = frame->local;  	ioc_inode_lock (ioc_inode);  	{  		waiter = ioc_inode->waitq; @@ -143,11 +145,11 @@ ioc_inode_wakeup (call_frame_t *frame,   * not for external reference   */  ioc_inode_t * -ioc_inode_update (ioc_table_t *table,  -		  inode_t *inode, -		  uint32_t weight) +ioc_inode_update (ioc_table_t *table, inode_t *inode, uint32_t weight)  { -	ioc_inode_t *ioc_inode = CALLOC (1, sizeof (ioc_inode_t)); +	ioc_inode_t *ioc_inode = NULL; +         +        ioc_inode = CALLOC (1, sizeof (ioc_inode_t));  	ERR_ABORT (ioc_inode);  	ioc_inode->table = table; @@ -185,7 +187,9 @@ ioc_inode_update (ioc_table_t *table,  void  ioc_inode_destroy (ioc_inode_t *ioc_inode)  { -	ioc_table_t *table = ioc_inode->table; +	ioc_table_t *table = NULL; + +        table = ioc_inode->table;  	ioc_table_lock (table);  	table->inode_count--; @@ -198,4 +202,3 @@ ioc_inode_destroy (ioc_inode_t *ioc_inode)  	pthread_mutex_destroy (&ioc_inode->inode_lock);  	free (ioc_inode);  } - diff --git a/xlators/performance/io-cache/src/page.c b/xlators/performance/io-cache/src/page.c index 73db26db861..87a6e1a85b5 100644 --- a/xlators/performance/io-cache/src/page.c +++ b/xlators/performance/io-cache/src/page.c @@ -1,20 +1,20 @@  /* -   Copyright (c) 2007-2009 Z RESEARCH, Inc. <http://www.zresearch.com> -   This file is part of GlusterFS. - -   GlusterFS is free software; you can redistribute it and/or modify -   it under the terms of the GNU General Public License as published -   by the Free Software Foundation; either version 3 of the License, -   or (at your option) any later version. - -   GlusterFS is distributed in the hope that it will be useful, but -   WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   General Public License for more details. - -   You should have received a copy of the GNU General Public License -   along with this program.  If not, see -   <http://www.gnu.org/licenses/>. +  Copyright (c) 2007-2009 Z RESEARCH, Inc. <http://www.zresearch.com> +  This file is part of GlusterFS. + +  GlusterFS is free software; you can redistribute it and/or modify +  it under the terms of the GNU General Public License as published +  by the Free Software Foundation; either version 3 of the License, +  or (at your option) any later version. + +  GlusterFS is distributed in the hope that it will be useful, but +  WITHOUT ANY WARRANTY; without even the implied warranty of +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +  General Public License for more details. + +  You should have received a copy of the GNU General Public License +  along with this program.  If not, see +  <http://www.gnu.org/licenses/>.  */  #ifndef _CONFIG_H @@ -31,14 +31,16 @@  #include <sys/time.h>  ioc_page_t * -ioc_page_get (ioc_inode_t *ioc_inode, -	      off_t offset) +ioc_page_get (ioc_inode_t *ioc_inode, off_t offset)  {  	int8_t       found = 0; -	ioc_page_t  *page = NULL; -	ioc_table_t *table = ioc_inode->table; -	off_t        rounded_offset = floor (offset, table->page_size); +	ioc_page_t   *page = NULL; +	ioc_table_t  *table = NULL; +	off_t        rounded_offset = 0; +        table = ioc_inode->table; +        rounded_offset = floor (offset, table->page_size); +   	if (list_empty (&ioc_inode->pages)) {  		return NULL;  	} @@ -118,11 +120,11 @@ int32_t  ioc_prune (ioc_table_t *table)  {  	ioc_inode_t *curr = NULL, *next_ioc_inode = NULL; -	ioc_page_t *page = NULL, *next = NULL; -	int32_t ret = -1; -	int32_t index = 0; -	uint64_t size_to_prune = 0; -	uint64_t size_pruned = 0; +	ioc_page_t  *page = NULL, *next = NULL; +	int32_t     ret = -1; +	int32_t     index = 0; +	uint64_t    size_to_prune = 0; +	uint64_t    size_pruned = 0;  	ioc_table_lock (table);  	{ @@ -190,15 +192,19 @@ ioc_prune (ioc_table_t *table)   *   */  ioc_page_t * -ioc_page_create (ioc_inode_t *ioc_inode, -		 off_t offset) +ioc_page_create (ioc_inode_t *ioc_inode, off_t offset)  { -	ioc_table_t *table = ioc_inode->table; -	ioc_page_t *page = NULL; -	off_t rounded_offset = floor (offset, table->page_size); -	ioc_page_t *newpage = CALLOC (1, sizeof (*newpage)); -	ERR_ABORT (newpage); +	ioc_table_t *table = NULL; +	ioc_page_t  *page = NULL; +	off_t       rounded_offset = 0; +	ioc_page_t  *newpage = NULL; +        table = ioc_inode->table; +        rounded_offset = floor (offset, table->page_size); + +        newpage = CALLOC (1, sizeof (*newpage)); +	ERR_ABORT (newpage); +  	if (ioc_inode)  		table = ioc_inode->table;  	else { @@ -229,9 +235,7 @@ ioc_page_create (ioc_inode_t *ioc_inode,   *   */  void -ioc_wait_on_page (ioc_page_t *page, -		  call_frame_t *frame, -		  off_t offset, +ioc_wait_on_page (ioc_page_t *page, call_frame_t *frame, off_t offset,  		  size_t size)  {  	ioc_waitq_t *waitq = NULL; @@ -270,8 +274,7 @@ ioc_wait_on_page (ioc_page_t *page,   * assumes ioc_inode is locked   */  int8_t -ioc_cache_still_valid (ioc_inode_t *ioc_inode, -		       struct stat *stbuf) +ioc_cache_still_valid (ioc_inode_t *ioc_inode, struct stat *stbuf)  {  	int8_t cache_still_valid = 1; @@ -316,27 +319,26 @@ ioc_waitq_return (ioc_waitq_t *waitq)  int -ioc_fault_cbk (call_frame_t *frame, -	       void *cookie, -	       xlator_t *this, -	       int32_t op_ret, -	       int32_t op_errno, -	       struct iovec *vector, -	       int32_t count, -	       struct stat *stbuf, -               struct iobref *iobref) +ioc_fault_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +               int32_t op_ret, int32_t op_errno, struct iovec *vector, +	       int32_t count, struct stat *stbuf, struct iobref *iobref)  { -	ioc_local_t *local = frame->local; -	off_t offset = local->pending_offset; -	ioc_inode_t *ioc_inode = local->inode; -	ioc_table_t *table = ioc_inode->table; -	ioc_page_t *page = NULL; -	off_t trav_offset = 0; -	size_t payload_size = 0; -	int32_t destroy_size = 0; -	size_t page_size = 0; +	ioc_local_t *local = NULL; +	off_t       offset = 0; +	ioc_inode_t *ioc_inode = NULL; +	ioc_table_t *table = NULL; +	ioc_page_t  *page = NULL; +	off_t       trav_offset = 0; +	size_t      payload_size = 0; +	int32_t     destroy_size = 0; +	size_t      page_size = 0;  	ioc_waitq_t *waitq = NULL; -        size_t  iobref_page_size = 0; +        size_t      iobref_page_size = 0; + +        local = frame->local; +        offset = local->pending_offset; +        ioc_inode = local->inode; +        table = ioc_inode->table;  	trav_offset = offset;    	payload_size = op_ret; @@ -458,15 +460,17 @@ ioc_fault_cbk (call_frame_t *frame,   *   */  void -ioc_page_fault (ioc_inode_t *ioc_inode, -		call_frame_t *frame, -		fd_t *fd, +ioc_page_fault (ioc_inode_t *ioc_inode,	call_frame_t *frame, fd_t *fd,  		off_t offset)  { -	ioc_table_t *table = ioc_inode->table; -	call_frame_t *fault_frame = copy_frame (frame); -	ioc_local_t *fault_local = CALLOC (1, sizeof (ioc_local_t)); -	ERR_ABORT (fault_local); +	ioc_table_t  *table = NULL; +	call_frame_t *fault_frame = NULL; +	ioc_local_t  *fault_local = NULL; + +        table = ioc_inode->table; +        fault_frame = copy_frame (frame); +        fault_local = CALLOC (1, sizeof (ioc_local_t)); +        ERR_ABORT (fault_local);  	/* NOTE: copy_frame() means, the frame the fop whose fd_ref we   	 * are using till now won't be valid till we get reply from server.  @@ -485,26 +489,28 @@ ioc_page_fault (ioc_inode_t *ioc_inode,  		"stack winding page fault for offset = %"PRId64" with "  		"frame %p", offset, fault_frame); -	STACK_WIND (fault_frame, ioc_fault_cbk, -		    FIRST_CHILD(fault_frame->this), -		    FIRST_CHILD(fault_frame->this)->fops->readv, -		    fd, table->page_size, offset); +	STACK_WIND (fault_frame, ioc_fault_cbk, FIRST_CHILD(fault_frame->this), +		    FIRST_CHILD(fault_frame->this)->fops->readv, fd, +                    table->page_size, offset);  	return;  }  void -ioc_frame_fill (ioc_page_t *page, -		call_frame_t *frame, -		off_t offset, -		size_t size) +ioc_frame_fill (ioc_page_t *page, call_frame_t *frame, off_t offset, +                size_t size)  { -	ioc_local_t *local = frame->local; -	ioc_fill_t *fill = NULL; -	off_t src_offset = 0; -	off_t dst_offset = 0; -	ssize_t copy_size = 0; -	ioc_inode_t *ioc_inode = page->inode; +	ioc_local_t *local = NULL; +	ioc_fill_t  *fill = NULL; +	off_t       src_offset = 0; +	off_t       dst_offset = 0; +	ssize_t     copy_size = 0; +	ioc_inode_t *ioc_inode = NULL; +        ioc_fill_t  *new = NULL; +        int8_t      found = 0; +        local = frame->local; +        ioc_inode = page->inode; +  	gf_log (frame->this->name, GF_LOG_DEBUG,  		"frame (%p) offset = %"PRId64" && size = %"GF_PRI_SIZET" "  		"&& page->size = %"GF_PRI_SIZET" && wait_count = %d",  @@ -542,7 +548,7 @@ ioc_frame_fill (ioc_page_t *page,  			copy_size, src_offset, dst_offset);  		{ -			ioc_fill_t *new = CALLOC (1, sizeof (*new)); +                        new = CALLOC (1, sizeof (*new));  			ERR_ABORT (new);  			new->offset = page->offset;  			new->size = copy_size; @@ -570,7 +576,7 @@ ioc_frame_fill (ioc_page_t *page,  				 * ioc_fill_t to the end of list */  				list_add_tail (&new->list, &local->fill_list);  			} else { -				int8_t found = 0; +                                found = 0;  				/* list is not empty, we need to look for   				 * where this offset fits in list */  				list_for_each_entry (fill, &local->fill_list,  @@ -607,15 +613,16 @@ ioc_frame_fill (ioc_page_t *page,  static void  ioc_frame_unwind (call_frame_t *frame)  { -	ioc_local_t *local = frame->local; -	ioc_fill_t *fill = NULL, *next = NULL; -	int32_t count = 0; -	struct iovec *vector = NULL; -	int32_t copied = 0; +	ioc_local_t   *local = NULL; +	ioc_fill_t    *fill = NULL, *next = NULL; +	int32_t       count = 0; +	struct iovec  *vector = NULL; +	int32_t       copied = 0;  	struct iobref *iobref = NULL; -	struct stat stbuf = {0,}; -	int32_t op_ret = 0; +	struct stat   stbuf = {0,}; +	int32_t       op_ret = 0; +        local = frame->local;  	//  ioc_local_lock (local);  	iobref = iobref_new (); @@ -656,13 +663,8 @@ ioc_frame_unwind (call_frame_t *frame)  	//  ioc_local_unlock (local); -	STACK_UNWIND (frame, -		      op_ret, -		      local->op_errno, -		      vector, -		      count, -		      &stbuf, -                      iobref); +	STACK_UNWIND (frame, op_ret, local->op_errno, vector, count, +		      &stbuf, iobref);  	iobref_unref (iobref); @@ -682,9 +684,11 @@ ioc_frame_unwind (call_frame_t *frame)  void  ioc_frame_return (call_frame_t *frame)  { -	ioc_local_t *local = frame->local; -	int32_t wait_count; -	assert (local->wait_count > 0); +	ioc_local_t *local = NULL; +	int32_t wait_count = 0; + +        local = frame->local; +        assert (local->wait_count > 0);  	ioc_local_lock (local);  	{ @@ -708,7 +712,7 @@ ioc_frame_return (call_frame_t *frame)  ioc_waitq_t *  ioc_page_wakeup (ioc_page_t *page)  { -	ioc_waitq_t *waitq = NULL, *trav = NULL; +	ioc_waitq_t  *waitq = NULL, *trav = NULL;  	call_frame_t *frame = NULL;  	waitq = page->waitq; @@ -738,15 +742,13 @@ ioc_page_wakeup (ioc_page_t *page)   *   */  ioc_waitq_t * -ioc_page_error (ioc_page_t *page, -		int32_t op_ret, -		int32_t op_errno) +ioc_page_error (ioc_page_t *page, int32_t op_ret, int32_t op_errno)  { -	ioc_waitq_t *waitq = NULL, *trav = NULL; +	ioc_waitq_t  *waitq = NULL, *trav = NULL;  	call_frame_t *frame = NULL; -	int64_t ret = 0; -	ioc_table_t *table = NULL; -	ioc_local_t *local = NULL; +	int64_t      ret = 0; +	ioc_table_t  *table = NULL; +	ioc_local_t  *local = NULL;  	waitq = page->waitq;  	page->waitq = NULL;  | 
