Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
6889e783
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6889e783
编写于
10月 13, 2014
作者:
D
Dave Chinner
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'xfs-misc-fixes-for-3.18-3' into for-next
上级
75e58ce4
a8b1ee8b
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
57 addition
and
61 deletion
+57
-61
fs/xfs/kmem.c
fs/xfs/kmem.c
+0
-1
fs/xfs/libxfs/xfs_da_btree.c
fs/xfs/libxfs/xfs_da_btree.c
+2
-1
fs/xfs/libxfs/xfs_sb.c
fs/xfs/libxfs/xfs_sb.c
+5
-0
fs/xfs/time.h
fs/xfs/time.h
+0
-36
fs/xfs/xfs_aops.c
fs/xfs/xfs_aops.c
+7
-0
fs/xfs/xfs_bmap_util.c
fs/xfs/xfs_bmap_util.c
+7
-7
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode.c
+4
-4
fs/xfs/xfs_inode.h
fs/xfs/xfs_inode.h
+1
-1
fs/xfs/xfs_inode_item.c
fs/xfs/xfs_inode_item.c
+1
-1
fs/xfs/xfs_ioctl.c
fs/xfs/xfs_ioctl.c
+16
-4
fs/xfs/xfs_ioctl32.c
fs/xfs/xfs_ioctl32.c
+2
-0
fs/xfs/xfs_ioctl32.h
fs/xfs/xfs_ioctl32.h
+2
-1
fs/xfs/xfs_iomap.c
fs/xfs/xfs_iomap.c
+2
-2
fs/xfs/xfs_itable.c
fs/xfs/xfs_itable.c
+2
-1
fs/xfs/xfs_linux.h
fs/xfs/xfs_linux.h
+5
-1
fs/xfs/xfs_trans_inode.c
fs/xfs/xfs_trans_inode.c
+1
-1
未找到文件。
fs/xfs/kmem.c
浏览文件 @
6889e783
...
...
@@ -21,7 +21,6 @@
#include <linux/swap.h>
#include <linux/blkdev.h>
#include <linux/backing-dev.h>
#include "time.h"
#include "kmem.h"
#include "xfs_message.h"
...
...
fs/xfs/libxfs/xfs_da_btree.c
浏览文件 @
6889e783
...
...
@@ -2563,7 +2563,8 @@ xfs_da_get_buf(
mapp
,
nmap
,
0
);
error
=
bp
?
bp
->
b_error
:
-
EIO
;
if
(
error
)
{
xfs_trans_brelse
(
trans
,
bp
);
if
(
bp
)
xfs_trans_brelse
(
trans
,
bp
);
goto
out_free
;
}
...
...
fs/xfs/libxfs/xfs_sb.c
浏览文件 @
6889e783
...
...
@@ -445,6 +445,8 @@ __xfs_sb_from_disk(
to
->
sb_features_incompat
=
be32_to_cpu
(
from
->
sb_features_incompat
);
to
->
sb_features_log_incompat
=
be32_to_cpu
(
from
->
sb_features_log_incompat
);
/* crc is only used on disk, not in memory; just init to 0 here. */
to
->
sb_crc
=
0
;
to
->
sb_pad
=
0
;
to
->
sb_pquotino
=
be64_to_cpu
(
from
->
sb_pquotino
);
to
->
sb_lsn
=
be64_to_cpu
(
from
->
sb_lsn
);
...
...
@@ -550,6 +552,9 @@ xfs_sb_to_disk(
if
(
!
fields
)
return
;
/* We should never write the crc here, it's updated in the IO path */
fields
&=
~
XFS_SB_CRC
;
xfs_sb_quota_to_disk
(
to
,
from
,
&
fields
);
while
(
fields
)
{
f
=
(
xfs_sb_field_t
)
xfs_lowbit64
((
__uint64_t
)
fields
);
...
...
fs/xfs/time.h
已删除
100644 → 0
浏览文件 @
75e58ce4
/*
* Copyright (c) 2000-2003,2005 Silicon Graphics, Inc.
* All Rights Reserved.
*
* This program 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.
*
* This program is distributed in the hope that it would 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, write the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef __XFS_SUPPORT_TIME_H__
#define __XFS_SUPPORT_TIME_H__
#include <linux/sched.h>
#include <linux/time.h>
typedef
struct
timespec
timespec_t
;
static
inline
void
delay
(
long
ticks
)
{
schedule_timeout_uninterruptible
(
ticks
);
}
static
inline
void
nanotime
(
struct
timespec
*
tvp
)
{
*
tvp
=
CURRENT_TIME
;
}
#endif
/* __XFS_SUPPORT_TIME_H__ */
fs/xfs/xfs_aops.c
浏览文件 @
6889e783
...
...
@@ -560,6 +560,13 @@ xfs_cancel_ioend(
do
{
next_bh
=
bh
->
b_private
;
clear_buffer_async_write
(
bh
);
/*
* The unwritten flag is cleared when added to the
* ioend. We're not submitting for I/O so mark the
* buffer unwritten again for next time around.
*/
if
(
ioend
->
io_type
==
XFS_IO_UNWRITTEN
)
set_buffer_unwritten
(
bh
);
unlock_buffer
(
bh
);
}
while
((
bh
=
next_bh
)
!=
NULL
);
...
...
fs/xfs/xfs_bmap_util.c
浏览文件 @
6889e783
...
...
@@ -1368,14 +1368,14 @@ xfs_zero_file_space(
if
(
start_boundary
<
end_boundary
-
1
)
{
/*
* punch out delayed allocation blocks and the page cache over
* the conversion range
* Writeback the range to ensure any inode size updates due to
* appending writes make it to disk (otherwise we could just
* punch out the delalloc blocks).
*/
xfs_ilock
(
ip
,
XFS_ILOCK_EXCL
);
error
=
xfs_bmap_punch_delalloc_range
(
ip
,
XFS_B_TO_FSBT
(
mp
,
start_boundary
),
XFS_B_TO_FSB
(
mp
,
end_boundary
-
start_boundary
));
xfs_iunlock
(
ip
,
XFS_ILOCK_EXCL
);
error
=
filemap_write_and_wait_range
(
VFS_I
(
ip
)
->
i_mapping
,
start_boundary
,
end_boundary
-
1
);
if
(
error
)
goto
out
;
truncate_pagecache_range
(
VFS_I
(
ip
),
start_boundary
,
end_boundary
-
1
);
...
...
fs/xfs/xfs_inode.c
浏览文件 @
6889e783
...
...
@@ -654,7 +654,7 @@ xfs_ialloc(
xfs_inode_t
*
ip
;
uint
flags
;
int
error
;
timespec_t
tv
;
struct
timespec
tv
;
/*
* Call the space management code to pick
...
...
@@ -720,7 +720,7 @@ xfs_ialloc(
ip
->
i_d
.
di_nextents
=
0
;
ASSERT
(
ip
->
i_d
.
di_nblocks
==
0
);
nanotime
(
&
tv
);
tv
=
current_fs_time
(
mp
->
m_super
);
ip
->
i_d
.
di_mtime
.
t_sec
=
(
__int32_t
)
tv
.
tv_sec
;
ip
->
i_d
.
di_mtime
.
t_nsec
=
(
__int32_t
)
tv
.
tv_nsec
;
ip
->
i_d
.
di_atime
=
ip
->
i_d
.
di_mtime
;
...
...
@@ -769,6 +769,8 @@ xfs_ialloc(
di_flags
|=
XFS_DIFLAG_EXTSZINHERIT
;
ip
->
i_d
.
di_extsize
=
pip
->
i_d
.
di_extsize
;
}
if
(
pip
->
i_d
.
di_flags
&
XFS_DIFLAG_PROJINHERIT
)
di_flags
|=
XFS_DIFLAG_PROJINHERIT
;
}
else
if
(
S_ISREG
(
mode
))
{
if
(
pip
->
i_d
.
di_flags
&
XFS_DIFLAG_RTINHERIT
)
di_flags
|=
XFS_DIFLAG_REALTIME
;
...
...
@@ -789,8 +791,6 @@ xfs_ialloc(
if
((
pip
->
i_d
.
di_flags
&
XFS_DIFLAG_NOSYMLINKS
)
&&
xfs_inherit_nosymlinks
)
di_flags
|=
XFS_DIFLAG_NOSYMLINKS
;
if
(
pip
->
i_d
.
di_flags
&
XFS_DIFLAG_PROJINHERIT
)
di_flags
|=
XFS_DIFLAG_PROJINHERIT
;
if
((
pip
->
i_d
.
di_flags
&
XFS_DIFLAG_NODEFRAG
)
&&
xfs_inherit_nodefrag
)
di_flags
|=
XFS_DIFLAG_NODEFRAG
;
...
...
fs/xfs/xfs_inode.h
浏览文件 @
6889e783
...
...
@@ -102,7 +102,7 @@ xfs_new_eof(struct xfs_inode *ip, xfs_fsize_t new_size)
{
xfs_fsize_t
i_size
=
i_size_read
(
VFS_I
(
ip
));
if
(
new_size
>
i_size
)
if
(
new_size
>
i_size
||
new_size
<
0
)
new_size
=
i_size
;
return
new_size
>
ip
->
i_d
.
di_size
?
new_size
:
0
;
}
...
...
fs/xfs/xfs_inode_item.c
浏览文件 @
6889e783
...
...
@@ -615,7 +615,7 @@ xfs_iflush_done(
blip
=
bp
->
b_fspriv
;
prev
=
NULL
;
while
(
blip
!=
NULL
)
{
if
(
lip
->
li_cb
!=
xfs_iflush_done
)
{
if
(
b
lip
->
li_cb
!=
xfs_iflush_done
)
{
prev
=
blip
;
blip
=
blip
->
li_bio_list
;
continue
;
...
...
fs/xfs/xfs_ioctl.c
浏览文件 @
6889e783
...
...
@@ -968,8 +968,6 @@ xfs_set_diflags(
di_flags
|=
XFS_DIFLAG_NOATIME
;
if
(
xflags
&
XFS_XFLAG_NODUMP
)
di_flags
|=
XFS_DIFLAG_NODUMP
;
if
(
xflags
&
XFS_XFLAG_PROJINHERIT
)
di_flags
|=
XFS_DIFLAG_PROJINHERIT
;
if
(
xflags
&
XFS_XFLAG_NODEFRAG
)
di_flags
|=
XFS_DIFLAG_NODEFRAG
;
if
(
xflags
&
XFS_XFLAG_FILESTREAM
)
...
...
@@ -981,6 +979,8 @@ xfs_set_diflags(
di_flags
|=
XFS_DIFLAG_NOSYMLINKS
;
if
(
xflags
&
XFS_XFLAG_EXTSZINHERIT
)
di_flags
|=
XFS_DIFLAG_EXTSZINHERIT
;
if
(
xflags
&
XFS_XFLAG_PROJINHERIT
)
di_flags
|=
XFS_DIFLAG_PROJINHERIT
;
}
else
if
(
S_ISREG
(
ip
->
i_d
.
di_mode
))
{
if
(
xflags
&
XFS_XFLAG_REALTIME
)
di_flags
|=
XFS_DIFLAG_REALTIME
;
...
...
@@ -1231,13 +1231,25 @@ xfs_ioctl_setattr(
}
if
(
mask
&
FSX_EXTSIZE
)
ip
->
i_d
.
di_extsize
=
fa
->
fsx_extsize
>>
mp
->
m_sb
.
sb_blocklog
;
if
(
mask
&
FSX_XFLAGS
)
{
xfs_set_diflags
(
ip
,
fa
->
fsx_xflags
);
xfs_diflags_to_linux
(
ip
);
}
/*
* Only set the extent size hint if we've already determined that the
* extent size hint should be set on the inode. If no extent size flags
* are set on the inode then unconditionally clear the extent size hint.
*/
if
(
mask
&
FSX_EXTSIZE
)
{
int
extsize
=
0
;
if
(
ip
->
i_d
.
di_flags
&
(
XFS_DIFLAG_EXTSIZE
|
XFS_DIFLAG_EXTSZINHERIT
))
extsize
=
fa
->
fsx_extsize
>>
mp
->
m_sb
.
sb_blocklog
;
ip
->
i_d
.
di_extsize
=
extsize
;
}
xfs_trans_ichgtime
(
tp
,
ip
,
XFS_ICHGTIME_CHG
);
xfs_trans_log_inode
(
tp
,
ip
,
XFS_ILOG_CORE
);
...
...
fs/xfs/xfs_ioctl32.c
浏览文件 @
6889e783
...
...
@@ -160,6 +160,7 @@ xfs_ioctl32_bstat_copyin(
get_user
(
bstat
->
bs_gen
,
&
bstat32
->
bs_gen
)
||
get_user
(
bstat
->
bs_projid_lo
,
&
bstat32
->
bs_projid_lo
)
||
get_user
(
bstat
->
bs_projid_hi
,
&
bstat32
->
bs_projid_hi
)
||
get_user
(
bstat
->
bs_forkoff
,
&
bstat32
->
bs_forkoff
)
||
get_user
(
bstat
->
bs_dmevmask
,
&
bstat32
->
bs_dmevmask
)
||
get_user
(
bstat
->
bs_dmstate
,
&
bstat32
->
bs_dmstate
)
||
get_user
(
bstat
->
bs_aextents
,
&
bstat32
->
bs_aextents
))
...
...
@@ -214,6 +215,7 @@ xfs_bulkstat_one_fmt_compat(
put_user
(
buffer
->
bs_gen
,
&
p32
->
bs_gen
)
||
put_user
(
buffer
->
bs_projid
,
&
p32
->
bs_projid
)
||
put_user
(
buffer
->
bs_projid_hi
,
&
p32
->
bs_projid_hi
)
||
put_user
(
buffer
->
bs_forkoff
,
&
p32
->
bs_forkoff
)
||
put_user
(
buffer
->
bs_dmevmask
,
&
p32
->
bs_dmevmask
)
||
put_user
(
buffer
->
bs_dmstate
,
&
p32
->
bs_dmstate
)
||
put_user
(
buffer
->
bs_aextents
,
&
p32
->
bs_aextents
))
...
...
fs/xfs/xfs_ioctl32.h
浏览文件 @
6889e783
...
...
@@ -67,8 +67,9 @@ typedef struct compat_xfs_bstat {
__u32
bs_gen
;
/* generation count */
__u16
bs_projid_lo
;
/* lower part of project id */
#define bs_projid bs_projid_lo
/* (previously just bs_projid) */
__u16
bs_forkoff
;
/* inode fork offset in bytes */
__u16
bs_projid_hi
;
/* high part of project id */
unsigned
char
bs_pad
[
1
2
];
/* pad space, unused */
unsigned
char
bs_pad
[
1
0
];
/* pad space, unused */
__u32
bs_dmevmask
;
/* DMIG event mask */
__u16
bs_dmstate
;
/* DMIG state info */
__u16
bs_aextents
;
/* attribute number of extents */
...
...
fs/xfs/xfs_iomap.c
浏览文件 @
6889e783
...
...
@@ -404,8 +404,8 @@ xfs_quota_calc_throttle(
int
shift
=
0
;
struct
xfs_dquot
*
dq
=
xfs_inode_dquot
(
ip
,
type
);
/* over hi wmark, squash the prealloc completely */
if
(
dq
->
q_res_bcount
>=
dq
->
q_prealloc_hi_wmark
)
{
/*
no dq, or
over hi wmark, squash the prealloc completely */
if
(
!
dq
||
dq
->
q_res_bcount
>=
dq
->
q_prealloc_hi_wmark
)
{
*
qblocks
=
0
;
*
qfreesp
=
0
;
return
;
...
...
fs/xfs/xfs_itable.c
浏览文件 @
6889e783
...
...
@@ -639,7 +639,8 @@ xfs_inumbers(
xfs_buf_relse
(
agbp
);
agbp
=
NULL
;
agino
=
0
;
}
while
(
++
agno
<
mp
->
m_sb
.
sb_agcount
);
agno
++
;
}
while
(
agno
<
mp
->
m_sb
.
sb_agcount
);
if
(
!
error
)
{
if
(
bufidx
)
{
...
...
fs/xfs/xfs_linux.h
浏览文件 @
6889e783
...
...
@@ -56,7 +56,6 @@ typedef __uint64_t __psunsigned_t;
#include "kmem.h"
#include "mrlock.h"
#include "time.h"
#include "uuid.h"
#include <linux/semaphore.h>
...
...
@@ -179,6 +178,11 @@ typedef __uint64_t __psunsigned_t;
#define MAX(a,b) (max(a,b))
#define howmany(x, y) (((x)+((y)-1))/(y))
static
inline
void
delay
(
long
ticks
)
{
schedule_timeout_uninterruptible
(
ticks
);
}
/*
* XFS wrapper structure for sysfs support. It depends on external data
* structures and is embedded in various internal data structures to implement
...
...
fs/xfs/xfs_trans_inode.c
浏览文件 @
6889e783
...
...
@@ -70,7 +70,7 @@ xfs_trans_ichgtime(
int
flags
)
{
struct
inode
*
inode
=
VFS_I
(
ip
);
timespec_t
tv
;
struct
timespec
tv
;
ASSERT
(
tp
);
ASSERT
(
xfs_isilocked
(
ip
,
XFS_ILOCK_EXCL
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录