Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
9369a431
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9369a431
编写于
9月 18, 2012
作者:
T
Trond Myklebust
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
NFSv4.1: Cleanup; add "pnfs_" prefix to put_lseg() and get_lseg()
Signed-off-by:
N
Trond Myklebust
<
Trond.Myklebust@netapp.com
>
上级
70c3bd2b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
31 addition
and
31 deletion
+31
-31
fs/nfs/nfs4filelayout.c
fs/nfs/nfs4filelayout.c
+8
-8
fs/nfs/nfs4proc.c
fs/nfs/nfs4proc.c
+1
-1
fs/nfs/pnfs.c
fs/nfs/pnfs.c
+18
-18
fs/nfs/pnfs.h
fs/nfs/pnfs.h
+4
-4
未找到文件。
fs/nfs/nfs4filelayout.c
浏览文件 @
9369a431
...
...
@@ -453,7 +453,7 @@ static void filelayout_commit_release(void *calldata)
struct
nfs_commit_data
*
data
=
calldata
;
data
->
completion_ops
->
completion
(
data
);
put_lseg
(
data
->
lseg
);
p
nfs_p
ut_lseg
(
data
->
lseg
);
nfs_put_client
(
data
->
ds_clp
);
nfs_commitdata_release
(
data
);
}
...
...
@@ -931,7 +931,7 @@ filelayout_pg_init_write(struct nfs_pageio_descriptor *pgio,
nfs_init_cinfo
(
&
cinfo
,
pgio
->
pg_inode
,
pgio
->
pg_dreq
);
status
=
filelayout_alloc_commit_info
(
pgio
->
pg_lseg
,
&
cinfo
,
GFP_NOFS
);
if
(
status
<
0
)
{
put_lseg
(
pgio
->
pg_lseg
);
p
nfs_p
ut_lseg
(
pgio
->
pg_lseg
);
pgio
->
pg_lseg
=
NULL
;
goto
out_mds
;
}
...
...
@@ -985,7 +985,7 @@ filelayout_clear_request_commit(struct nfs_page *req,
out:
nfs_request_remove_commit_list
(
req
,
cinfo
);
spin_unlock
(
cinfo
->
lock
);
put_lseg
(
freeme
);
p
nfs_p
ut_lseg
(
freeme
);
}
static
struct
list_head
*
...
...
@@ -1018,7 +1018,7 @@ filelayout_choose_commit_list(struct nfs_page *req,
* off due to a rewrite, in which case it will be done in
* filelayout_clear_request_commit
*/
buckets
[
i
].
wlseg
=
get_lseg
(
lseg
);
buckets
[
i
].
wlseg
=
pnfs_
get_lseg
(
lseg
);
}
set_bit
(
PG_COMMIT_TO_DS
,
&
req
->
wb_flags
);
cinfo
->
ds
->
nwritten
++
;
...
...
@@ -1128,7 +1128,7 @@ filelayout_scan_ds_commit_list(struct pnfs_commit_bucket *bucket,
if
(
list_empty
(
src
))
bucket
->
wlseg
=
NULL
;
else
get_lseg
(
bucket
->
clseg
);
pnfs_
get_lseg
(
bucket
->
clseg
);
}
return
ret
;
}
...
...
@@ -1159,12 +1159,12 @@ static void filelayout_recover_commit_reqs(struct list_head *dst,
/* NOTE cinfo->lock is NOT held, relying on fact that this is
* only called on single thread per dreq.
* Can't take the lock because need to do put_lseg
* Can't take the lock because need to do p
nfs_p
ut_lseg
*/
for
(
i
=
0
,
b
=
cinfo
->
ds
->
buckets
;
i
<
cinfo
->
ds
->
nbuckets
;
i
++
,
b
++
)
{
if
(
transfer_commit_list
(
&
b
->
written
,
dst
,
cinfo
,
0
))
{
BUG_ON
(
!
list_empty
(
&
b
->
written
));
put_lseg
(
b
->
wlseg
);
p
nfs_p
ut_lseg
(
b
->
wlseg
);
b
->
wlseg
=
NULL
;
}
}
...
...
@@ -1200,7 +1200,7 @@ alloc_ds_commits(struct nfs_commit_info *cinfo, struct list_head *list)
if
(
list_empty
(
&
bucket
->
committing
))
continue
;
nfs_retry_commit
(
&
bucket
->
committing
,
bucket
->
clseg
,
cinfo
);
put_lseg
(
bucket
->
clseg
);
p
nfs_p
ut_lseg
(
bucket
->
clseg
);
bucket
->
clseg
=
NULL
;
}
/* Caller will clean up entries put on list */
...
...
fs/nfs/nfs4proc.c
浏览文件 @
9369a431
...
...
@@ -6549,7 +6549,7 @@ static void nfs4_layoutcommit_release(void *calldata)
list_del_init
(
&
lseg
->
pls_lc_list
);
if
(
test_and_clear_bit
(
NFS_LSEG_LAYOUTCOMMIT
,
&
lseg
->
pls_flags
))
put_lseg
(
lseg
);
p
nfs_p
ut_lseg
(
lseg
);
}
clear_bit_unlock
(
NFS_INO_LAYOUTCOMMITTING
,
bitlock
);
...
...
fs/nfs/pnfs.c
浏览文件 @
9369a431
...
...
@@ -259,7 +259,7 @@ static void free_lseg(struct pnfs_layout_segment *lseg)
}
static
void
put_lseg_common
(
struct
pnfs_layout_segment
*
lseg
)
p
nfs_p
ut_lseg_common
(
struct
pnfs_layout_segment
*
lseg
)
{
struct
inode
*
inode
=
lseg
->
pls_layout
->
plh_inode
;
...
...
@@ -274,7 +274,7 @@ put_lseg_common(struct pnfs_layout_segment *lseg)
}
void
put_lseg
(
struct
pnfs_layout_segment
*
lseg
)
p
nfs_p
ut_lseg
(
struct
pnfs_layout_segment
*
lseg
)
{
struct
inode
*
inode
;
...
...
@@ -288,13 +288,13 @@ put_lseg(struct pnfs_layout_segment *lseg)
if
(
atomic_dec_and_lock
(
&
lseg
->
pls_refcount
,
&
inode
->
i_lock
))
{
LIST_HEAD
(
free_me
);
put_lseg_common
(
lseg
);
p
nfs_p
ut_lseg_common
(
lseg
);
list_add
(
&
lseg
->
pls_list
,
&
free_me
);
spin_unlock
(
&
inode
->
i_lock
);
pnfs_free_lseg_list
(
&
free_me
);
}
}
EXPORT_SYMBOL_GPL
(
put_lseg
);
EXPORT_SYMBOL_GPL
(
p
nfs_p
ut_lseg
);
static
inline
u64
end_offset
(
u64
start
,
u64
len
)
...
...
@@ -378,7 +378,7 @@ static int mark_lseg_invalid(struct pnfs_layout_segment *lseg,
dprintk
(
"%s: lseg %p ref %d
\n
"
,
__func__
,
lseg
,
atomic_read
(
&
lseg
->
pls_refcount
));
if
(
atomic_dec_and_test
(
&
lseg
->
pls_refcount
))
{
put_lseg_common
(
lseg
);
p
nfs_p
ut_lseg_common
(
lseg
);
list_add
(
&
lseg
->
pls_list
,
tmp_list
);
rv
=
1
;
}
...
...
@@ -914,7 +914,7 @@ pnfs_find_lseg(struct pnfs_layout_hdr *lo,
list_for_each_entry
(
lseg
,
&
lo
->
plh_segs
,
pls_list
)
{
if
(
test_bit
(
NFS_LSEG_VALID
,
&
lseg
->
pls_flags
)
&&
is_matching_lseg
(
&
lseg
->
pls_range
,
range
))
{
ret
=
get_lseg
(
lseg
);
ret
=
pnfs_
get_lseg
(
lseg
);
break
;
}
if
(
lseg
->
pls_range
.
offset
>
range
->
offset
)
...
...
@@ -1135,7 +1135,7 @@ pnfs_layout_process(struct nfs4_layoutget *lgp)
}
init_lseg
(
lo
,
lseg
);
lseg
->
pls_range
=
res
->
range
;
get_lseg
(
lseg
);
pnfs_
get_lseg
(
lseg
);
pnfs_insert_layout
(
lo
,
lseg
);
if
(
res
->
return_on_close
)
{
...
...
@@ -1369,12 +1369,12 @@ pnfs_do_multiple_writes(struct nfs_pageio_descriptor *desc, struct list_head *he
if
(
trypnfs
==
PNFS_NOT_ATTEMPTED
)
pnfs_write_through_mds
(
desc
,
data
);
}
put_lseg
(
lseg
);
p
nfs_p
ut_lseg
(
lseg
);
}
static
void
pnfs_writehdr_free
(
struct
nfs_pgio_header
*
hdr
)
{
put_lseg
(
hdr
->
lseg
);
p
nfs_p
ut_lseg
(
hdr
->
lseg
);
nfs_writehdr_free
(
hdr
);
}
EXPORT_SYMBOL_GPL
(
pnfs_writehdr_free
);
...
...
@@ -1389,17 +1389,17 @@ pnfs_generic_pg_writepages(struct nfs_pageio_descriptor *desc)
whdr
=
nfs_writehdr_alloc
();
if
(
!
whdr
)
{
desc
->
pg_completion_ops
->
error_cleanup
(
&
desc
->
pg_list
);
put_lseg
(
desc
->
pg_lseg
);
p
nfs_p
ut_lseg
(
desc
->
pg_lseg
);
desc
->
pg_lseg
=
NULL
;
return
-
ENOMEM
;
}
hdr
=
&
whdr
->
header
;
nfs_pgheader_init
(
desc
,
hdr
,
pnfs_writehdr_free
);
hdr
->
lseg
=
get_lseg
(
desc
->
pg_lseg
);
hdr
->
lseg
=
pnfs_
get_lseg
(
desc
->
pg_lseg
);
atomic_inc
(
&
hdr
->
refcnt
);
ret
=
nfs_generic_flush
(
desc
,
hdr
);
if
(
ret
!=
0
)
{
put_lseg
(
desc
->
pg_lseg
);
p
nfs_p
ut_lseg
(
desc
->
pg_lseg
);
desc
->
pg_lseg
=
NULL
;
}
else
pnfs_do_multiple_writes
(
desc
,
&
hdr
->
rpc_list
,
desc
->
pg_ioflags
);
...
...
@@ -1524,12 +1524,12 @@ pnfs_do_multiple_reads(struct nfs_pageio_descriptor *desc, struct list_head *hea
if
(
trypnfs
==
PNFS_NOT_ATTEMPTED
)
pnfs_read_through_mds
(
desc
,
data
);
}
put_lseg
(
lseg
);
p
nfs_p
ut_lseg
(
lseg
);
}
static
void
pnfs_readhdr_free
(
struct
nfs_pgio_header
*
hdr
)
{
put_lseg
(
hdr
->
lseg
);
p
nfs_p
ut_lseg
(
hdr
->
lseg
);
nfs_readhdr_free
(
hdr
);
}
EXPORT_SYMBOL_GPL
(
pnfs_readhdr_free
);
...
...
@@ -1545,17 +1545,17 @@ pnfs_generic_pg_readpages(struct nfs_pageio_descriptor *desc)
if
(
!
rhdr
)
{
desc
->
pg_completion_ops
->
error_cleanup
(
&
desc
->
pg_list
);
ret
=
-
ENOMEM
;
put_lseg
(
desc
->
pg_lseg
);
p
nfs_p
ut_lseg
(
desc
->
pg_lseg
);
desc
->
pg_lseg
=
NULL
;
return
ret
;
}
hdr
=
&
rhdr
->
header
;
nfs_pgheader_init
(
desc
,
hdr
,
pnfs_readhdr_free
);
hdr
->
lseg
=
get_lseg
(
desc
->
pg_lseg
);
hdr
->
lseg
=
pnfs_
get_lseg
(
desc
->
pg_lseg
);
atomic_inc
(
&
hdr
->
refcnt
);
ret
=
nfs_generic_pagein
(
desc
,
hdr
);
if
(
ret
!=
0
)
{
put_lseg
(
desc
->
pg_lseg
);
p
nfs_p
ut_lseg
(
desc
->
pg_lseg
);
desc
->
pg_lseg
=
NULL
;
}
else
pnfs_do_multiple_reads
(
desc
,
&
hdr
->
rpc_list
);
...
...
@@ -1608,7 +1608,7 @@ pnfs_set_layoutcommit(struct nfs_write_data *wdata)
}
if
(
!
test_and_set_bit
(
NFS_LSEG_LAYOUTCOMMIT
,
&
hdr
->
lseg
->
pls_flags
))
{
/* references matched in nfs4_layoutcommit_release */
get_lseg
(
hdr
->
lseg
);
pnfs_
get_lseg
(
hdr
->
lseg
);
}
if
(
end_pos
>
nfsi
->
layout
->
plh_lwb
)
nfsi
->
layout
->
plh_lwb
=
end_pos
;
...
...
fs/nfs/pnfs.h
浏览文件 @
9369a431
...
...
@@ -177,7 +177,7 @@ extern int nfs4_proc_layoutreturn(struct nfs4_layoutreturn *lrp);
/* pnfs.c */
void
pnfs_get_layout_hdr
(
struct
pnfs_layout_hdr
*
lo
);
void
put_lseg
(
struct
pnfs_layout_segment
*
lseg
);
void
p
nfs_p
ut_lseg
(
struct
pnfs_layout_segment
*
lseg
);
void
pnfs_pageio_init_read
(
struct
nfs_pageio_descriptor
*
,
struct
inode
*
,
const
struct
nfs_pgio_completion_ops
*
);
...
...
@@ -281,7 +281,7 @@ static inline int lo_fail_bit(u32 iomode)
}
static
inline
struct
pnfs_layout_segment
*
get_lseg
(
struct
pnfs_layout_segment
*
lseg
)
pnfs_
get_lseg
(
struct
pnfs_layout_segment
*
lseg
)
{
if
(
lseg
)
{
atomic_inc
(
&
lseg
->
pls_refcount
);
...
...
@@ -406,12 +406,12 @@ static inline void pnfs_destroy_layout(struct nfs_inode *nfsi)
}
static
inline
struct
pnfs_layout_segment
*
get_lseg
(
struct
pnfs_layout_segment
*
lseg
)
pnfs_
get_lseg
(
struct
pnfs_layout_segment
*
lseg
)
{
return
NULL
;
}
static
inline
void
put_lseg
(
struct
pnfs_layout_segment
*
lseg
)
static
inline
void
p
nfs_p
ut_lseg
(
struct
pnfs_layout_segment
*
lseg
)
{
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录