diff options
Diffstat (limited to 'xlators/performance/io-cache/src/ioc-inode.c')
| -rw-r--r-- | xlators/performance/io-cache/src/ioc-inode.c | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/xlators/performance/io-cache/src/ioc-inode.c b/xlators/performance/io-cache/src/ioc-inode.c index 1367a1246..86a54bb14 100644 --- a/xlators/performance/io-cache/src/ioc-inode.c +++ b/xlators/performance/io-cache/src/ioc-inode.c @@ -1,20 +1,11 @@ /* - Copyright (c) 2007-2010 Gluster, Inc. <http://www.gluster.com> + Copyright (c) 2008-2012 Red Hat, Inc. <http://www.redhat.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 Affero 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 - Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see - <http://www.gnu.org/licenses/>. + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. */ #ifndef _CONFIG_H @@ -36,6 +27,7 @@ void * str_to_ptr (char *string) { void *ptr = NULL; + GF_VALIDATE_OR_GOTO ("io-cache", string, out); ptr = (void *)strtoul (string, NULL, 16); @@ -122,7 +114,8 @@ ioc_inode_wakeup (call_frame_t *frame, ioc_inode_t *ioc_inode, ioc_inode_lock (ioc_inode); { page_waitq = - ioc_page_wakeup (waiter_page); + __ioc_page_wakeup (waiter_page, + waiter_page->op_errno); } ioc_inode_unlock (ioc_inode); if (page_waitq) @@ -132,17 +125,19 @@ ioc_inode_wakeup (call_frame_t *frame, ioc_inode_t *ioc_inode, * page->ready = 0, to avoid double faults */ ioc_inode_lock (ioc_inode); - - if (waiter_page->ready) { - waiter_page->ready = 0; - need_fault = 1; - } else { - gf_log (frame->this->name, GF_LOG_TRACE, - "validate frame(%p) is waiting" - "for in-transit page = %p", - frame, waiter_page); + { + if (waiter_page->ready) { + waiter_page->ready = 0; + need_fault = 1; + } else { + gf_log (frame->this->name, + GF_LOG_TRACE, + "validate frame(%p) is " + "waiting for in-transit" + " page = %p", frame, + waiter_page); + } } - ioc_inode_unlock (ioc_inode); if (need_fault) { |
