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,
set_op_state_serviced
(
op
);
spin_unlock
(
&
op
->
lock
);
/*
for every other operation (i.e. non-I/O), we need to
wake up the callers for downcall completion
notification
*
for every other operation (i.e. non-I/O), we need to
*
wake up the callers for downcall completion
*
notification
*/
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)
}
/*
/*
* we ran all the way through the last batch, set up for
* getting another batch...
*/
...
...
fs/orangefs/downcall.h
浏览文件 @
54804949
...
...
@@ -107,7 +107,7 @@ struct pvfs2_downcall_s {
__s32
status
;
/* currently trailer is used only by readdir */
__s64
trailer_size
;
char
*
trailer_buf
;
char
*
trailer_buf
;
union
{
struct
pvfs2_io_response
io
;
...
...
fs/orangefs/file.c
浏览文件 @
54804949
...
...
@@ -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
"
,
__func__
,
(
long
)
ret
);
}
if
(
ret
<
0
)
...
...
@@ -199,9 +198,9 @@ static ssize_t wait_for_direct_io(enum PVFS_io_type type, struct inode *inode,
if
(
ret
<
0
)
{
handle_io_error
();
/* defined in pvfs2-kernel.h */
/*
don't write an error to syslog on signaled operation
termination unless we've got debugging turned on, as
this can happen regularly (i.e. ctrl-c)
*
don't write an error to syslog on signaled operation
*
termination unless we've got debugging turned on, as
*
this can happen regularly (i.e. ctrl-c)
*/
if
(
ret
==
-
EINTR
)
gossip_debug
(
GOSSIP_FILE_DEBUG
,
...
...
@@ -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
;
/*
tell the device file owner waiting on I/O that this read has
completed and it can return now. in this exact case, on
wakeup the daemon will free the op, so we *cannot* touch it
after this.
*
tell the device file owner waiting on I/O that this read has
*
completed and it can return now. in this exact case, on
*
wakeup the daemon will free the op, so we *cannot* touch it
*
after this.
*/
wake_up_daemon_for_return
(
new_op
);
new_op
=
NULL
;
...
...
@@ -875,9 +874,9 @@ static int pvfs2_file_release(struct inode *inode, struct file *file)
pvfs2_flush_inode
(
inode
);
/*
remove all associated inode pages from the page cache and mmap
readahead cache (if any); this forces an expensive refresh of
data for the next caller of mmap (or 'get_block' accesses)
*
remove all associated inode pages from the page cache and mmap
*
readahead cache (if any); this forces an expensive refresh of
*
data for the next caller of mmap (or 'get_block' accesses)
*/
if
(
file
->
f_path
.
dentry
->
d_inode
&&
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)
}
gossip_debug
(
GOSSIP_FILE_DEBUG
,
"pvfs2_file_llseek: offset is %ld | origin is %d
|
"
"inode size is %lu
\n
"
,
"pvfs2_file_llseek: offset is %ld | origin is %d"
"
|
inode size is %lu
\n
"
,
(
long
)
offset
,
origin
,
(
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)
* AIO. Modeled after NFS, they do this too.
*/
/*
static ssize_t pvfs2_direct_IO(int rw,
struct kiocb *iocb,
struct iov_iter *iter,
loff_t offset)
{
gossip_debug(GOSSIP_INODE_DEBUG,
"pvfs2_direct_IO: %s\n",
iocb->ki_filp->f_path.dentry->d_name.name);
return -EINVAL;
}
*/
*
static ssize_t pvfs2_direct_IO(int rw,
*
struct kiocb *iocb,
*
struct iov_iter *iter,
*
loff_t offset)
*
{
*
gossip_debug(GOSSIP_INODE_DEBUG,
*
"pvfs2_direct_IO: %s\n",
*
iocb->ki_filp->f_path.dentry->d_name.name);
*
*
return -EINVAL;
*
}
*/
struct
backing_dev_info
pvfs2_backing_dev_info
=
{
.
name
=
"pvfs2"
,
...
...
fs/orangefs/protocol.h
浏览文件 @
54804949
...
...
@@ -101,22 +101,30 @@ typedef __s64 PVFS_offset;
#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 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)
/* 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)
/* 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
* in the kernel except to be masked out. */
* in the kernel except to be masked out.
*/
#define PVFS_ERROR_CLASS_BITS 0x380
/* Bits 6 - 0 are reserved for the actual error code. */
...
...
@@ -388,14 +396,8 @@ enum {
/*
* 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
/*
...
...
fs/orangefs/pvfs2-bufmap.c
浏览文件 @
54804949
...
...
@@ -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
,
struct
iov_iter
*
iter
,
int
buffer_index
,
size_t
size
)
struct
iov_iter
*
iter
,
int
buffer_index
,
size_t
size
)
{
struct
pvfs_bufmap_desc
*
to
;
struct
page
*
page
;
...
...
@@ -553,7 +553,7 @@ int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap,
"%s: buffer_index:%d: iov_iter_count(iter):%lu:
\n
"
,
__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
++
)
{
page
=
from
->
page_array
[
i
];
...
...
@@ -562,5 +562,5 @@ int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap,
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[] = {
{
"readdir"
,
GOSSIP_READDIR_DEBUG
},
/* Debug the mkdir operation (server only) */
{
"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
},
/* Debug the server's open file descriptor cache */
{
"open_cache"
,
GOSSIP_DBPF_OPEN_CACHE_DEBUG
},
...
...
fs/orangefs/pvfs2-kernel.h
浏览文件 @
54804949
...
...
@@ -229,9 +229,6 @@ int keyword_is_amalgam(char *);
extern
char
kernel_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
];
/* HELLO
extern struct client_debug_mask current_client_mask;
*/
extern
unsigned
int
kernel_mask_set_mod_init
;
extern
int
pvfs2_init_acl
(
struct
inode
*
inode
,
struct
inode
*
dir
);
...
...
@@ -431,9 +428,9 @@ struct pvfs2_stats {
extern
struct
pvfs2_stats
g_pvfs2_stats
;
/*
NOTE: See Documentation/filesystems/porting for information
on implementing FOO_I and properly accessing fs private data
*/
*
NOTE: See Documentation/filesystems/porting for information
*
on implementing FOO_I and properly accessing fs private data
*/
static
inline
struct
pvfs2_inode_s
*
PVFS2_I
(
struct
inode
*
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);
struct
mutex
devreq_mutex
;
/*
blocks non-priority requests from being queued for servicing. t
his
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
list
*/
* Blocks non-priority requests from being queued for servicing. T
his
*
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
*
list
*/
struct
mutex
request_mutex
;
/* 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,
/*
arbitrarily set the inode block size; FIXME: we need to
resolve the difference between the reported inode blocksize
and the PAGE_CACHE_SIZE, since our block count will always
be wrong.
For now, we're setting the block count to be the proper
number assuming the block size is 512 bytes, and the size is
rounded up to the nearest 4K. This is apparently required
to get proper size reports from the 'du' shell utility.
changing the inode->i_blkbits to something other than
PAGE_CACHE_SHIFT breaks mmap/execution as we depend on that.
*
arbitrarily set the inode block size; FIXME: we need to
*
resolve the difference between the reported inode blocksize
*
and the PAGE_CACHE_SIZE, since our block count will always
*
be wrong.
*
*
For now, we're setting the block count to be the proper
*
number assuming the block size is 512 bytes, and the size is
*
rounded up to the nearest 4K. This is apparently required
*
to get proper size reports from the 'du' shell utility.
*
*
changing the inode->i_blkbits to something other than
*
PAGE_CACHE_SHIFT breaks mmap/execution as we depend on that.
*/
gossip_debug
(
GOSSIP_UTILS_DEBUG
,
"attrs->mask = %x (objtype = %s)
\n
"
,
...
...
@@ -662,41 +662,51 @@ __u64 pvfs2_convert_time_field(void *time_ptr)
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. */
static
int
PINT_errno_mapping
[]
=
{
0
,
EPERM
,
ENOENT
,
EINTR
,
EIO
,
ENXIO
,
EBADF
,
EAGAIN
,
ENOMEM
,
EFAULT
,
EBUSY
,
EEXIST
,
ENODEV
,
ENOTDIR
,
EISDIR
,
EINVAL
,
EMFILE
,
EFBIG
,
ENOSPC
,
EROFS
,
EMLINK
,
EPIPE
,
EDEADLK
,
ENAMETOOLONG
,
ENOLCK
,
ENOSYS
,
ENOTEMPTY
,
ELOOP
,
EWOULDBLOCK
,
ENOMSG
,
EUNATCH
,
EBADR
,
EDEADLOCK
,
ENODATA
,
ETIME
,
ENONET
,
EREMOTE
,
ECOMM
,
EPROTO
,
EBADMSG
,
EOVERFLOW
,
ERESTART
,
EMSGSIZE
,
EPROTOTYPE
,
ENOPROTOOPT
,
EPROTONOSUPPORT
,
EOPNOTSUPP
,
EADDRINUSE
,
EADDRNOTAVAIL
,
ENETDOWN
,
ENETUNREACH
,
ENETRESET
,
ENOBUFS
,
ETIMEDOUT
,
ECONNREFUSED
,
EHOSTDOWN
,
EHOSTUNREACH
,
EALREADY
,
EACCES
,
ECONNRESET
,
ERANGE
0
,
EPERM
,
ENOENT
,
EINTR
,
EIO
,
ENXIO
,
EBADF
,
EAGAIN
,
ENOMEM
,
EFAULT
,
EBUSY
,
EEXIST
,
ENODEV
,
ENOTDIR
,
EISDIR
,
EINVAL
,
EMFILE
,
EFBIG
,
ENOSPC
,
EROFS
,
EMLINK
,
EPIPE
,
EDEADLK
,
ENAMETOOLONG
,
ENOLCK
,
ENOSYS
,
ENOTEMPTY
,
ELOOP
,
EWOULDBLOCK
,
ENOMSG
,
EUNATCH
,
EBADR
,
EDEADLOCK
,
ENODATA
,
ETIME
,
ENONET
,
EREMOTE
,
ECOMM
,
EPROTO
,
EBADMSG
,
EOVERFLOW
,
ERESTART
,
EMSGSIZE
,
EPROTOTYPE
,
ENOPROTOOPT
,
EPROTONOSUPPORT
,
EOPNOTSUPP
,
EADDRINUSE
,
EADDRNOTAVAIL
,
ENETDOWN
,
ENETUNREACH
,
ENETRESET
,
ENOBUFS
,
ETIMEDOUT
,
ECONNREFUSED
,
EHOSTDOWN
,
EHOSTUNREACH
,
EALREADY
,
EACCES
,
ECONNRESET
,
ERANGE
};
int
pvfs2_normalize_to_errno
(
__s32
error_code
)
{
__u32
i
;
/* Success */
if
(
error_code
==
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
)
{
gossip_err
(
"pvfs2: error status receieved.
\n
"
);
gossip_err
(
"pvfs2: assuming error code is inverted.
\n
"
);
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_ERROR_NUMBER_BITS
|
PVFS_NON_ERRNO_ERROR_BIT
|
...
...
@@ -708,25 +718,24 @@ int pvfs2_normalize_to_errno(__s32 error_code)
error_code
=
-
ETIMEDOUT
;
}
else
{
/* assume a default error code */
gossip_err
(
"pvfs2: warning: got error code without "
"errno equivalent: %d.
\n
"
,
error_code
);
gossip_err
(
"pvfs2: warning: got error code without errno equivalent: %d.
\n
"
,
error_code
);
error_code
=
-
EINVAL
;
}
/* Convert PVFS2 encoded errno values into regular errno values. */
}
else
if
((
-
error_code
)
&
PVFS_ERROR_BIT
)
{
__u32
i
;
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
];
else
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
{
gossip_err
(
"pvfs2: pvfs2_normalize_to_errno: got error code"
"which is not from PVFS2.
\n
"
);
gossip_err
(
"pvfs2: pvfs2_normalize_to_errno: got error code which is not from PVFS2.
\n
"
);
}
return
error_code
;
}
...
...
@@ -993,7 +1002,7 @@ void do_k_string(void *k_mask, int index)
__u64
*
mask
=
(
__u64
*
)
k_mask
;
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
((
strlen
(
kernel_debug_string
)
+
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录