Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
54804949
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
54804949
编写于
10月 05, 2015
作者:
M
Mike Marshall
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Orangefs: fix some checkpatch.pl complaints that had creeped in.
Signed-off-by:
N
Mike Marshall
<
hubcap@omnibond.com
>
上级
894ac432
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
111 addition
and
102 deletion
+111
-102
fs/orangefs/devpvfs2-req.c
fs/orangefs/devpvfs2-req.c
+3
-3
fs/orangefs/dir.c
fs/orangefs/dir.c
+1
-1
fs/orangefs/downcall.h
fs/orangefs/downcall.h
+1
-1
fs/orangefs/file.c
fs/orangefs/file.c
+12
-13
fs/orangefs/inode.c
fs/orangefs/inode.c
+12
-12
fs/orangefs/protocol.h
fs/orangefs/protocol.h
+17
-15
fs/orangefs/pvfs2-bufmap.c
fs/orangefs/pvfs2-bufmap.c
+5
-5
fs/orangefs/pvfs2-debug.h
fs/orangefs/pvfs2-debug.h
+4
-2
fs/orangefs/pvfs2-kernel.h
fs/orangefs/pvfs2-kernel.h
+3
-6
fs/orangefs/pvfs2-mod.c
fs/orangefs/pvfs2-mod.c
+5
-5
fs/orangefs/pvfs2-utils.c
fs/orangefs/pvfs2-utils.c
+48
-39
未找到文件。
fs/orangefs/devpvfs2-req.c
浏览文件 @
54804949
...
@@ -476,9 +476,9 @@ static ssize_t pvfs2_devreq_writev(struct file *file,
...
@@ -476,9 +476,9 @@ static ssize_t pvfs2_devreq_writev(struct file *file,
set_op_state_serviced
(
op
);
set_op_state_serviced
(
op
);
spin_unlock
(
&
op
->
lock
);
spin_unlock
(
&
op
->
lock
);
/*
/*
for every other operation (i.e. non-I/O), we need to
*
for every other operation (i.e. non-I/O), we need to
wake up the callers for downcall completion
*
wake up the callers for downcall completion
notification
*
notification
*/
*/
wake_up_interruptible
(
&
op
->
waitq
);
wake_up_interruptible
(
&
op
->
waitq
);
}
}
...
...
fs/orangefs/dir.c
浏览文件 @
54804949
...
@@ -289,7 +289,7 @@ static int pvfs2_readdir(struct file *file, struct dir_context *ctx)
...
@@ -289,7 +289,7 @@ static int pvfs2_readdir(struct file *file, struct dir_context *ctx)
}
}
/*
/*
* we ran all the way through the last batch, set up for
* we ran all the way through the last batch, set up for
* getting another batch...
* getting another batch...
*/
*/
...
...
fs/orangefs/downcall.h
浏览文件 @
54804949
...
@@ -107,7 +107,7 @@ struct pvfs2_downcall_s {
...
@@ -107,7 +107,7 @@ struct pvfs2_downcall_s {
__s32
status
;
__s32
status
;
/* currently trailer is used only by readdir */
/* currently trailer is used only by readdir */
__s64
trailer_size
;
__s64
trailer_size
;
char
*
trailer_buf
;
char
*
trailer_buf
;
union
{
union
{
struct
pvfs2_io_response
io
;
struct
pvfs2_io_response
io
;
...
...
fs/orangefs/file.c
浏览文件 @
54804949
...
@@ -54,7 +54,6 @@ static int precopy_buffers(struct pvfs2_bufmap *bufmap,
...
@@ -54,7 +54,6 @@ static int precopy_buffers(struct pvfs2_bufmap *bufmap,
gossip_err
(
"%s: Failed to copy-in buffers. Please make sure that the pvfs2-client is running. %ld
\n
"
,
gossip_err
(
"%s: Failed to copy-in buffers. Please make sure that the pvfs2-client is running. %ld
\n
"
,
__func__
,
__func__
,
(
long
)
ret
);
(
long
)
ret
);
}
}
if
(
ret
<
0
)
if
(
ret
<
0
)
...
@@ -199,9 +198,9 @@ static ssize_t wait_for_direct_io(enum PVFS_io_type type, struct inode *inode,
...
@@ -199,9 +198,9 @@ static ssize_t wait_for_direct_io(enum PVFS_io_type type, struct inode *inode,
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
handle_io_error
();
/* defined in pvfs2-kernel.h */
handle_io_error
();
/* defined in pvfs2-kernel.h */
/*
/*
don't write an error to syslog on signaled operation
*
don't write an error to syslog on signaled operation
termination unless we've got debugging turned on, as
*
termination unless we've got debugging turned on, as
this can happen regularly (i.e. ctrl-c)
*
this can happen regularly (i.e. ctrl-c)
*/
*/
if
(
ret
==
-
EINTR
)
if
(
ret
==
-
EINTR
)
gossip_debug
(
GOSSIP_FILE_DEBUG
,
gossip_debug
(
GOSSIP_FILE_DEBUG
,
...
@@ -245,10 +244,10 @@ static ssize_t wait_for_direct_io(enum PVFS_io_type type, struct inode *inode,
...
@@ -245,10 +244,10 @@ static ssize_t wait_for_direct_io(enum PVFS_io_type type, struct inode *inode,
ret
=
new_op
->
downcall
.
resp
.
io
.
amt_complete
;
ret
=
new_op
->
downcall
.
resp
.
io
.
amt_complete
;
/*
/*
tell the device file owner waiting on I/O that this read has
*
tell the device file owner waiting on I/O that this read has
completed and it can return now. in this exact case, on
*
completed and it can return now. in this exact case, on
wakeup the daemon will free the op, so we *cannot* touch it
*
wakeup the daemon will free the op, so we *cannot* touch it
after this.
*
after this.
*/
*/
wake_up_daemon_for_return
(
new_op
);
wake_up_daemon_for_return
(
new_op
);
new_op
=
NULL
;
new_op
=
NULL
;
...
@@ -875,9 +874,9 @@ static int pvfs2_file_release(struct inode *inode, struct file *file)
...
@@ -875,9 +874,9 @@ static int pvfs2_file_release(struct inode *inode, struct file *file)
pvfs2_flush_inode
(
inode
);
pvfs2_flush_inode
(
inode
);
/*
/*
remove all associated inode pages from the page cache and mmap
*
remove all associated inode pages from the page cache and mmap
readahead cache (if any); this forces an expensive refresh of
*
readahead cache (if any); this forces an expensive refresh of
data for the next caller of mmap (or 'get_block' accesses)
*
data for the next caller of mmap (or 'get_block' accesses)
*/
*/
if
(
file
->
f_path
.
dentry
->
d_inode
&&
if
(
file
->
f_path
.
dentry
->
d_inode
&&
file
->
f_path
.
dentry
->
d_inode
->
i_mapping
&&
file
->
f_path
.
dentry
->
d_inode
->
i_mapping
&&
...
@@ -960,8 +959,8 @@ static loff_t pvfs2_file_llseek(struct file *file, loff_t offset, int origin)
...
@@ -960,8 +959,8 @@ static loff_t pvfs2_file_llseek(struct file *file, loff_t offset, int origin)
}
}
gossip_debug
(
GOSSIP_FILE_DEBUG
,
gossip_debug
(
GOSSIP_FILE_DEBUG
,
"pvfs2_file_llseek: offset is %ld | origin is %d
|
"
"pvfs2_file_llseek: offset is %ld | origin is %d"
"inode size is %lu
\n
"
,
"
|
inode size is %lu
\n
"
,
(
long
)
offset
,
(
long
)
offset
,
origin
,
origin
,
(
unsigned
long
)
file
->
f_path
.
dentry
->
d_inode
->
i_size
);
(
unsigned
long
)
file
->
f_path
.
dentry
->
d_inode
->
i_size
);
...
...
fs/orangefs/inode.c
浏览文件 @
54804949
...
@@ -128,18 +128,18 @@ static int pvfs2_releasepage(struct page *page, gfp_t foo)
...
@@ -128,18 +128,18 @@ static int pvfs2_releasepage(struct page *page, gfp_t foo)
* AIO. Modeled after NFS, they do this too.
* AIO. Modeled after NFS, they do this too.
*/
*/
/*
/*
static ssize_t pvfs2_direct_IO(int rw,
*
static ssize_t pvfs2_direct_IO(int rw,
struct kiocb *iocb,
*
struct kiocb *iocb,
struct iov_iter *iter,
*
struct iov_iter *iter,
loff_t offset)
*
loff_t offset)
{
*
{
gossip_debug(GOSSIP_INODE_DEBUG,
*
gossip_debug(GOSSIP_INODE_DEBUG,
"pvfs2_direct_IO: %s\n",
*
"pvfs2_direct_IO: %s\n",
iocb->ki_filp->f_path.dentry->d_name.name);
*
iocb->ki_filp->f_path.dentry->d_name.name);
*
return -EINVAL;
*
return -EINVAL;
}
*
}
*/
*/
struct
backing_dev_info
pvfs2_backing_dev_info
=
{
struct
backing_dev_info
pvfs2_backing_dev_info
=
{
.
name
=
"pvfs2"
,
.
name
=
"pvfs2"
,
...
...
fs/orangefs/protocol.h
浏览文件 @
54804949
...
@@ -101,22 +101,30 @@ typedef __s64 PVFS_offset;
...
@@ -101,22 +101,30 @@ typedef __s64 PVFS_offset;
#define PVFS2_SUPER_MAGIC 0x20030528
#define PVFS2_SUPER_MAGIC 0x20030528
/* PVFS2 error codes are a signed 32-bit integer. Error codes are negative, but
/*
* the sign is stripped before decoding. */
* PVFS2 error codes are a signed 32-bit integer. Error codes are negative, but
* the sign is stripped before decoding.
*/
/* Bit 31 is not used since it is the sign. */
/* Bit 31 is not used since it is the sign. */
/* Bit 30 specifies that this is a PVFS2 error. A PVFS2 error is either an
/*
* encoded errno value or a PVFS2 protocol error. */
* Bit 30 specifies that this is a PVFS2 error. A PVFS2 error is either an
* encoded errno value or a PVFS2 protocol error.
*/
#define PVFS_ERROR_BIT (1 << 30)
#define PVFS_ERROR_BIT (1 << 30)
/* Bit 29 specifies that this is a PVFS2 protocol error and not an encoded
/*
* errno value. */
* Bit 29 specifies that this is a PVFS2 protocol error and not an encoded
* errno value.
*/
#define PVFS_NON_ERRNO_ERROR_BIT (1 << 29)
#define PVFS_NON_ERRNO_ERROR_BIT (1 << 29)
/* Bits 9, 8, and 7 specify the error class, which encodes the section of
/*
* Bits 9, 8, and 7 specify the error class, which encodes the section of
* server code the error originated in for logging purposes. It is not used
* server code the error originated in for logging purposes. It is not used
* in the kernel except to be masked out. */
* in the kernel except to be masked out.
*/
#define PVFS_ERROR_CLASS_BITS 0x380
#define PVFS_ERROR_CLASS_BITS 0x380
/* Bits 6 - 0 are reserved for the actual error code. */
/* Bits 6 - 0 are reserved for the actual error code. */
...
@@ -388,14 +396,8 @@ enum {
...
@@ -388,14 +396,8 @@ enum {
/*
/*
* version number for use in communicating between kernel space and user
* version number for use in communicating between kernel space and user
* space
* space
. Zero signifies the upstream version of the kernel module.
*/
*/
/*
#define PVFS_KERNEL_PROTO_VERSION \
((PVFS2_VERSION_MAJOR * 10000) + \
(PVFS2_VERSION_MINOR * 100) + \
PVFS2_VERSION_SUB)
*/
#define PVFS_KERNEL_PROTO_VERSION 0
#define PVFS_KERNEL_PROTO_VERSION 0
/*
/*
...
...
fs/orangefs/pvfs2-bufmap.c
浏览文件 @
54804949
...
@@ -508,9 +508,9 @@ void readdir_index_put(struct pvfs2_bufmap *bufmap, int buffer_index)
...
@@ -508,9 +508,9 @@ void readdir_index_put(struct pvfs2_bufmap *bufmap, int buffer_index)
}
}
int
pvfs_bufmap_copy_from_iovec
(
struct
pvfs2_bufmap
*
bufmap
,
int
pvfs_bufmap_copy_from_iovec
(
struct
pvfs2_bufmap
*
bufmap
,
struct
iov_iter
*
iter
,
struct
iov_iter
*
iter
,
int
buffer_index
,
int
buffer_index
,
size_t
size
)
size_t
size
)
{
{
struct
pvfs_bufmap_desc
*
to
;
struct
pvfs_bufmap_desc
*
to
;
struct
page
*
page
;
struct
page
*
page
;
...
@@ -553,7 +553,7 @@ int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap,
...
@@ -553,7 +553,7 @@ int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap,
"%s: buffer_index:%d: iov_iter_count(iter):%lu:
\n
"
,
"%s: buffer_index:%d: iov_iter_count(iter):%lu:
\n
"
,
__func__
,
buffer_index
,
iov_iter_count
(
iter
));
__func__
,
buffer_index
,
iov_iter_count
(
iter
));
from
=
&
bufmap
->
desc_array
[
buffer_index
];
from
=
&
bufmap
->
desc_array
[
buffer_index
];
for
(
i
=
0
;
iov_iter_count
(
iter
);
i
++
)
{
for
(
i
=
0
;
iov_iter_count
(
iter
);
i
++
)
{
page
=
from
->
page_array
[
i
];
page
=
from
->
page_array
[
i
];
...
@@ -562,5 +562,5 @@ int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap,
...
@@ -562,5 +562,5 @@ int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap,
break
;
break
;
}
}
return
iov_iter_count
(
iter
)
?
-
EFAULT
:
0
;
return
iov_iter_count
(
iter
)
?
-
EFAULT
:
0
;
}
}
fs/orangefs/pvfs2-debug.h
浏览文件 @
54804949
...
@@ -180,8 +180,10 @@ static struct __keyword_mask_s s_keyword_mask_map[] = {
...
@@ -180,8 +180,10 @@ static struct __keyword_mask_s s_keyword_mask_map[] = {
{
"readdir"
,
GOSSIP_READDIR_DEBUG
},
{
"readdir"
,
GOSSIP_READDIR_DEBUG
},
/* Debug the mkdir operation (server only) */
/* Debug the mkdir operation (server only) */
{
"mkdir"
,
GOSSIP_MKDIR_DEBUG
},
{
"mkdir"
,
GOSSIP_MKDIR_DEBUG
},
/* Debug the io operation (reads and writes)
/*
* for both the client and server */
* Debug the io operation (reads and writes)
* for both the client and server.
*/
{
"io"
,
GOSSIP_IO_DEBUG
},
{
"io"
,
GOSSIP_IO_DEBUG
},
/* Debug the server's open file descriptor cache */
/* Debug the server's open file descriptor cache */
{
"open_cache"
,
GOSSIP_DBPF_OPEN_CACHE_DEBUG
},
{
"open_cache"
,
GOSSIP_DBPF_OPEN_CACHE_DEBUG
},
...
...
fs/orangefs/pvfs2-kernel.h
浏览文件 @
54804949
...
@@ -229,9 +229,6 @@ int keyword_is_amalgam(char *);
...
@@ -229,9 +229,6 @@ int keyword_is_amalgam(char *);
extern
char
kernel_debug_string
[
PVFS2_MAX_DEBUG_STRING_LEN
];
extern
char
kernel_debug_string
[
PVFS2_MAX_DEBUG_STRING_LEN
];
extern
char
client_debug_string
[
PVFS2_MAX_DEBUG_STRING_LEN
];
extern
char
client_debug_string
[
PVFS2_MAX_DEBUG_STRING_LEN
];
extern
char
client_debug_array_string
[
PVFS2_MAX_DEBUG_STRING_LEN
];
extern
char
client_debug_array_string
[
PVFS2_MAX_DEBUG_STRING_LEN
];
/* HELLO
extern struct client_debug_mask current_client_mask;
*/
extern
unsigned
int
kernel_mask_set_mod_init
;
extern
unsigned
int
kernel_mask_set_mod_init
;
extern
int
pvfs2_init_acl
(
struct
inode
*
inode
,
struct
inode
*
dir
);
extern
int
pvfs2_init_acl
(
struct
inode
*
inode
,
struct
inode
*
dir
);
...
@@ -431,9 +428,9 @@ struct pvfs2_stats {
...
@@ -431,9 +428,9 @@ struct pvfs2_stats {
extern
struct
pvfs2_stats
g_pvfs2_stats
;
extern
struct
pvfs2_stats
g_pvfs2_stats
;
/*
/*
NOTE: See Documentation/filesystems/porting for information
*
NOTE: See Documentation/filesystems/porting for information
on implementing FOO_I and properly accessing fs private data
*
on implementing FOO_I and properly accessing fs private data
*/
*/
static
inline
struct
pvfs2_inode_s
*
PVFS2_I
(
struct
inode
*
inode
)
static
inline
struct
pvfs2_inode_s
*
PVFS2_I
(
struct
inode
*
inode
)
{
{
return
container_of
(
inode
,
struct
pvfs2_inode_s
,
vfs_inode
);
return
container_of
(
inode
,
struct
pvfs2_inode_s
,
vfs_inode
);
...
...
fs/orangefs/pvfs2-mod.c
浏览文件 @
54804949
...
@@ -73,11 +73,11 @@ module_param(slot_timeout_secs, int, 0);
...
@@ -73,11 +73,11 @@ module_param(slot_timeout_secs, int, 0);
struct
mutex
devreq_mutex
;
struct
mutex
devreq_mutex
;
/*
/*
blocks non-priority requests from being queued for servicing. t
his
* Blocks non-priority requests from being queued for servicing. T
his
could be used for protecting the request list data structure, but
*
could be used for protecting the request list data structure, but
for now it's only being used to stall the op addition to the request
*
for now it's only being used to stall the op addition to the request
list
*
list
*/
*/
struct
mutex
request_mutex
;
struct
mutex
request_mutex
;
/* hash table for storing operations waiting for matching downcall */
/* hash table for storing operations waiting for matching downcall */
...
...
fs/orangefs/pvfs2-utils.c
浏览文件 @
54804949
...
@@ -111,18 +111,18 @@ static int copy_attributes_to_inode(struct inode *inode,
...
@@ -111,18 +111,18 @@ static int copy_attributes_to_inode(struct inode *inode,
/*
/*
arbitrarily set the inode block size; FIXME: we need to
*
arbitrarily set the inode block size; FIXME: we need to
resolve the difference between the reported inode blocksize
*
resolve the difference between the reported inode blocksize
and the PAGE_CACHE_SIZE, since our block count will always
*
and the PAGE_CACHE_SIZE, since our block count will always
be wrong.
*
be wrong.
*
For now, we're setting the block count to be the proper
*
For now, we're setting the block count to be the proper
number assuming the block size is 512 bytes, and the size is
*
number assuming the block size is 512 bytes, and the size is
rounded up to the nearest 4K. This is apparently required
*
rounded up to the nearest 4K. This is apparently required
to get proper size reports from the 'du' shell utility.
*
to get proper size reports from the 'du' shell utility.
*
changing the inode->i_blkbits to something other than
*
changing the inode->i_blkbits to something other than
PAGE_CACHE_SHIFT breaks mmap/execution as we depend on that.
*
PAGE_CACHE_SHIFT breaks mmap/execution as we depend on that.
*/
*/
gossip_debug
(
GOSSIP_UTILS_DEBUG
,
gossip_debug
(
GOSSIP_UTILS_DEBUG
,
"attrs->mask = %x (objtype = %s)
\n
"
,
"attrs->mask = %x (objtype = %s)
\n
"
,
...
@@ -662,41 +662,51 @@ __u64 pvfs2_convert_time_field(void *time_ptr)
...
@@ -662,41 +662,51 @@ __u64 pvfs2_convert_time_field(void *time_ptr)
return
pvfs2_time
;
return
pvfs2_time
;
}
}
/* The following is a very dirty hack that is now a permanent part of the
/*
* PVFS2 protocol. See protocol.h for more error definitions. */
* The following is a very dirty hack that is now a permanent part of the
* PVFS2 protocol. See protocol.h for more error definitions.
*/
/* The order matches include/pvfs2-types.h in the OrangeFS source. */
/* The order matches include/pvfs2-types.h in the OrangeFS source. */
static
int
PINT_errno_mapping
[]
=
{
static
int
PINT_errno_mapping
[]
=
{
0
,
EPERM
,
ENOENT
,
EINTR
,
EIO
,
ENXIO
,
EBADF
,
EAGAIN
,
ENOMEM
,
0
,
EPERM
,
ENOENT
,
EINTR
,
EIO
,
ENXIO
,
EBADF
,
EAGAIN
,
ENOMEM
,
EFAULT
,
EBUSY
,
EEXIST
,
ENODEV
,
ENOTDIR
,
EISDIR
,
EINVAL
,
EMFILE
,
EFAULT
,
EBUSY
,
EEXIST
,
ENODEV
,
ENOTDIR
,
EISDIR
,
EINVAL
,
EMFILE
,
EFBIG
,
ENOSPC
,
EROFS
,
EMLINK
,
EPIPE
,
EDEADLK
,
ENAMETOOLONG
,
EFBIG
,
ENOSPC
,
EROFS
,
EMLINK
,
EPIPE
,
EDEADLK
,
ENAMETOOLONG
,
ENOLCK
,
ENOSYS
,
ENOTEMPTY
,
ELOOP
,
EWOULDBLOCK
,
ENOMSG
,
EUNATCH
,
ENOLCK
,
ENOSYS
,
ENOTEMPTY
,
ELOOP
,
EWOULDBLOCK
,
ENOMSG
,
EUNATCH
,
EBADR
,
EDEADLOCK
,
ENODATA
,
ETIME
,
ENONET
,
EREMOTE
,
ECOMM
,
EBADR
,
EDEADLOCK
,
ENODATA
,
ETIME
,
ENONET
,
EREMOTE
,
ECOMM
,
EPROTO
,
EBADMSG
,
EOVERFLOW
,
ERESTART
,
EMSGSIZE
,
EPROTOTYPE
,
EPROTO
,
EBADMSG
,
EOVERFLOW
,
ERESTART
,
EMSGSIZE
,
EPROTOTYPE
,
ENOPROTOOPT
,
EPROTONOSUPPORT
,
EOPNOTSUPP
,
EADDRINUSE
,
ENOPROTOOPT
,
EPROTONOSUPPORT
,
EOPNOTSUPP
,
EADDRINUSE
,
EADDRNOTAVAIL
,
ENETDOWN
,
ENETUNREACH
,
ENETRESET
,
ENOBUFS
,
EADDRNOTAVAIL
,
ENETDOWN
,
ENETUNREACH
,
ENETRESET
,
ENOBUFS
,
ETIMEDOUT
,
ECONNREFUSED
,
EHOSTDOWN
,
EHOSTUNREACH
,
EALREADY
,
ETIMEDOUT
,
ECONNREFUSED
,
EHOSTDOWN
,
EHOSTUNREACH
,
EALREADY
,
EACCES
,
ECONNRESET
,
ERANGE
EACCES
,
ECONNRESET
,
ERANGE
};
};
int
pvfs2_normalize_to_errno
(
__s32
error_code
)
int
pvfs2_normalize_to_errno
(
__s32
error_code
)
{
{
__u32
i
;
/* Success */
/* Success */
if
(
error_code
==
0
)
{
if
(
error_code
==
0
)
{
return
0
;
return
0
;
/* This shouldn't ever happen. If it does it should be fixed on the
/*
* server. */
* This shouldn't ever happen. If it does it should be fixed on the
* server.
*/
}
else
if
(
error_code
>
0
)
{
}
else
if
(
error_code
>
0
)
{
gossip_err
(
"pvfs2: error status receieved.
\n
"
);
gossip_err
(
"pvfs2: error status receieved.
\n
"
);
gossip_err
(
"pvfs2: assuming error code is inverted.
\n
"
);
gossip_err
(
"pvfs2: assuming error code is inverted.
\n
"
);
error_code
=
-
error_code
;
error_code
=
-
error_code
;
}
}
/* XXX: This is very bad since error codes from PVFS2 may not be
/*
* suitable for return into userspace. */
* XXX: This is very bad since error codes from PVFS2 may not be
* suitable for return into userspace.
*/
/* Convert PVFS2 error values into errno values suitable for return
/*
* from the kernel. */
* Convert PVFS2 error values into errno values suitable for return
* from the kernel.
*/
if
((
-
error_code
)
&
PVFS_NON_ERRNO_ERROR_BIT
)
{
if
((
-
error_code
)
&
PVFS_NON_ERRNO_ERROR_BIT
)
{
if
(((
-
error_code
)
&
if
(((
-
error_code
)
&
(
PVFS_ERROR_NUMBER_BITS
|
PVFS_NON_ERRNO_ERROR_BIT
|
(
PVFS_ERROR_NUMBER_BITS
|
PVFS_NON_ERRNO_ERROR_BIT
|
...
@@ -708,25 +718,24 @@ int pvfs2_normalize_to_errno(__s32 error_code)
...
@@ -708,25 +718,24 @@ int pvfs2_normalize_to_errno(__s32 error_code)
error_code
=
-
ETIMEDOUT
;
error_code
=
-
ETIMEDOUT
;
}
else
{
}
else
{
/* assume a default error code */
/* assume a default error code */
gossip_err
(
"pvfs2: warning: got error code without "
gossip_err
(
"pvfs2: warning: got error code without errno equivalent: %d.
\n
"
,
error_code
);
"errno equivalent: %d.
\n
"
,
error_code
);
error_code
=
-
EINVAL
;
error_code
=
-
EINVAL
;
}
}
/* Convert PVFS2 encoded errno values into regular errno values. */
/* Convert PVFS2 encoded errno values into regular errno values. */
}
else
if
((
-
error_code
)
&
PVFS_ERROR_BIT
)
{
}
else
if
((
-
error_code
)
&
PVFS_ERROR_BIT
)
{
__u32
i
;
i
=
(
-
error_code
)
&
~
(
PVFS_ERROR_BIT
|
PVFS_ERROR_CLASS_BITS
);
i
=
(
-
error_code
)
&
~
(
PVFS_ERROR_BIT
|
PVFS_ERROR_CLASS_BITS
);
if
(
i
<
sizeof
PINT_errno_mapping
/
sizeof
*
PINT_errno_mapping
)
if
(
i
<
sizeof
(
PINT_errno_mapping
)
/
sizeof
(
*
PINT_errno_mapping
)
)
error_code
=
-
PINT_errno_mapping
[
i
];
error_code
=
-
PINT_errno_mapping
[
i
];
else
else
error_code
=
-
EINVAL
;
error_code
=
-
EINVAL
;
/* Only PVFS2 protocol error codes should ever come here. Otherwise
/*
* there is a bug somewhere. */
* Only PVFS2 protocol error codes should ever come here. Otherwise
* there is a bug somewhere.
*/
}
else
{
}
else
{
gossip_err
(
"pvfs2: pvfs2_normalize_to_errno: got error code"
gossip_err
(
"pvfs2: pvfs2_normalize_to_errno: got error code which is not from PVFS2.
\n
"
);
"which is not from PVFS2.
\n
"
);
}
}
return
error_code
;
return
error_code
;
}
}
...
@@ -993,7 +1002,7 @@ void do_k_string(void *k_mask, int index)
...
@@ -993,7 +1002,7 @@ void do_k_string(void *k_mask, int index)
__u64
*
mask
=
(
__u64
*
)
k_mask
;
__u64
*
mask
=
(
__u64
*
)
k_mask
;
if
(
keyword_is_amalgam
((
char
*
)
s_kmod_keyword_mask_map
[
index
].
keyword
))
if
(
keyword_is_amalgam
((
char
*
)
s_kmod_keyword_mask_map
[
index
].
keyword
))
goto
out
;
goto
out
;
if
(
*
mask
&
s_kmod_keyword_mask_map
[
index
].
mask_val
)
{
if
(
*
mask
&
s_kmod_keyword_mask_map
[
index
].
mask_val
)
{
if
((
strlen
(
kernel_debug_string
)
+
if
((
strlen
(
kernel_debug_string
)
+
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录