Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
c1a959d8
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看板
提交
c1a959d8
编写于
12月 30, 2005
作者:
L
Len Brown
浏览文件
操作
浏览文件
下载
差异文件
Pull linus into release branch
上级
6968e50c
9e625ff8
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
49 addition
and
39 deletion
+49
-39
arch/powerpc/mm/hash_utils_64.c
arch/powerpc/mm/hash_utils_64.c
+1
-1
arch/um/os-Linux/start_up.c
arch/um/os-Linux/start_up.c
+12
-10
arch/um/os-Linux/user_syms.c
arch/um/os-Linux/user_syms.c
+5
-0
arch/um/sys-i386/Makefile
arch/um/sys-i386/Makefile
+5
-3
arch/um/sys-x86_64/Makefile
arch/um/sys-x86_64/Makefile
+3
-2
arch/x86_64/mm/init.c
arch/x86_64/mm/init.c
+1
-1
drivers/char/drm/radeon_cp.c
drivers/char/drm/radeon_cp.c
+2
-9
drivers/char/vc_screen.c
drivers/char/vc_screen.c
+1
-1
drivers/media/video/saa7134/Kconfig
drivers/media/video/saa7134/Kconfig
+2
-2
drivers/mmc/mmc_block.c
drivers/mmc/mmc_block.c
+9
-5
drivers/serial/amba-pl011.c
drivers/serial/amba-pl011.c
+1
-1
drivers/usb/input/aiptek.c
drivers/usb/input/aiptek.c
+1
-1
fs/hostfs/hostfs_kern.c
fs/hostfs/hostfs_kern.c
+6
-3
未找到文件。
arch/powerpc/mm/hash_utils_64.c
浏览文件 @
c1a959d8
...
@@ -514,7 +514,7 @@ void __init htab_initialize(void)
...
@@ -514,7 +514,7 @@ void __init htab_initialize(void)
#undef KB
#undef KB
#undef MB
#undef MB
void
__init
htab_initialize_secondary
(
void
)
void
htab_initialize_secondary
(
void
)
{
{
if
(
!
platform_is_lpar
())
if
(
!
platform_is_lpar
())
mtspr
(
SPRN_SDR1
,
_SDR1
);
mtspr
(
SPRN_SDR1
,
_SDR1
);
...
...
arch/um/os-Linux/start_up.c
浏览文件 @
c1a959d8
...
@@ -116,16 +116,16 @@ static int stop_ptraced_child(int pid, void *stack, int exitcode,
...
@@ -116,16 +116,16 @@ static int stop_ptraced_child(int pid, void *stack, int exitcode,
if
(
!
WIFEXITED
(
status
)
||
(
WEXITSTATUS
(
status
)
!=
exitcode
))
{
if
(
!
WIFEXITED
(
status
)
||
(
WEXITSTATUS
(
status
)
!=
exitcode
))
{
int
exit_with
=
WEXITSTATUS
(
status
);
int
exit_with
=
WEXITSTATUS
(
status
);
if
(
exit_with
==
2
)
if
(
exit_with
==
2
)
print
k
(
"check_ptrace : child exited with status 2. "
print
f
(
"check_ptrace : child exited with status 2. "
"Serious trouble happening! Try updating your "
"Serious trouble happening! Try updating your "
"host skas patch!
\n
Disabling SYSEMU support."
);
"host skas patch!
\n
Disabling SYSEMU support."
);
print
k
(
"check_ptrace : child exited with exitcode %d, while "
print
f
(
"check_ptrace : child exited with exitcode %d, while "
"expecting %d; status 0x%x"
,
exit_with
,
"expecting %d; status 0x%x"
,
exit_with
,
exitcode
,
status
);
exitcode
,
status
);
if
(
mustpanic
)
if
(
mustpanic
)
panic
(
"
\n
"
);
panic
(
"
\n
"
);
else
else
print
k
(
"
\n
"
);
print
f
(
"
\n
"
);
ret
=
-
1
;
ret
=
-
1
;
}
}
...
@@ -183,7 +183,7 @@ static void __init check_sysemu(void)
...
@@ -183,7 +183,7 @@ static void __init check_sysemu(void)
void
*
stack
;
void
*
stack
;
int
pid
,
n
,
status
,
count
=
0
;
int
pid
,
n
,
status
,
count
=
0
;
print
k
(
"Checking syscall emulation patch for ptrace..."
);
print
f
(
"Checking syscall emulation patch for ptrace..."
);
sysemu_supported
=
0
;
sysemu_supported
=
0
;
pid
=
start_ptraced_child
(
&
stack
);
pid
=
start_ptraced_child
(
&
stack
);
...
@@ -207,10 +207,10 @@ static void __init check_sysemu(void)
...
@@ -207,10 +207,10 @@ static void __init check_sysemu(void)
goto
fail_stopped
;
goto
fail_stopped
;
sysemu_supported
=
1
;
sysemu_supported
=
1
;
print
k
(
"OK
\n
"
);
print
f
(
"OK
\n
"
);
set_using_sysemu
(
!
force_sysemu_disabled
);
set_using_sysemu
(
!
force_sysemu_disabled
);
print
k
(
"Checking advanced syscall emulation patch for ptrace..."
);
print
f
(
"Checking advanced syscall emulation patch for ptrace..."
);
pid
=
start_ptraced_child
(
&
stack
);
pid
=
start_ptraced_child
(
&
stack
);
if
(
ptrace
(
PTRACE_OLDSETOPTIONS
,
pid
,
0
,
if
(
ptrace
(
PTRACE_OLDSETOPTIONS
,
pid
,
0
,
...
@@ -246,7 +246,7 @@ static void __init check_sysemu(void)
...
@@ -246,7 +246,7 @@ static void __init check_sysemu(void)
goto
fail_stopped
;
goto
fail_stopped
;
sysemu_supported
=
2
;
sysemu_supported
=
2
;
print
k
(
"OK
\n
"
);
print
f
(
"OK
\n
"
);
if
(
!
force_sysemu_disabled
)
if
(
!
force_sysemu_disabled
)
set_using_sysemu
(
sysemu_supported
);
set_using_sysemu
(
sysemu_supported
);
...
@@ -255,7 +255,7 @@ static void __init check_sysemu(void)
...
@@ -255,7 +255,7 @@ static void __init check_sysemu(void)
fail:
fail:
stop_ptraced_child
(
pid
,
stack
,
1
,
0
);
stop_ptraced_child
(
pid
,
stack
,
1
,
0
);
fail_stopped:
fail_stopped:
print
k
(
"missing
\n
"
);
print
f
(
"missing
\n
"
);
}
}
static
void
__init
check_ptrace
(
void
)
static
void
__init
check_ptrace
(
void
)
...
@@ -263,7 +263,7 @@ static void __init check_ptrace(void)
...
@@ -263,7 +263,7 @@ static void __init check_ptrace(void)
void
*
stack
;
void
*
stack
;
int
pid
,
syscall
,
n
,
status
;
int
pid
,
syscall
,
n
,
status
;
print
k
(
"Checking that ptrace can change system call numbers..."
);
print
f
(
"Checking that ptrace can change system call numbers..."
);
pid
=
start_ptraced_child
(
&
stack
);
pid
=
start_ptraced_child
(
&
stack
);
if
(
ptrace
(
PTRACE_OLDSETOPTIONS
,
pid
,
0
,
(
void
*
)
PTRACE_O_TRACESYSGOOD
)
<
0
)
if
(
ptrace
(
PTRACE_OLDSETOPTIONS
,
pid
,
0
,
(
void
*
)
PTRACE_O_TRACESYSGOOD
)
<
0
)
...
@@ -292,7 +292,7 @@ static void __init check_ptrace(void)
...
@@ -292,7 +292,7 @@ static void __init check_ptrace(void)
}
}
}
}
stop_ptraced_child
(
pid
,
stack
,
0
,
1
);
stop_ptraced_child
(
pid
,
stack
,
0
,
1
);
print
k
(
"OK
\n
"
);
print
f
(
"OK
\n
"
);
check_sysemu
();
check_sysemu
();
}
}
...
@@ -472,6 +472,8 @@ int can_do_skas(void)
...
@@ -472,6 +472,8 @@ int can_do_skas(void)
int
have_devanon
=
0
;
int
have_devanon
=
0
;
/* Runs on boot kernel stack - already safe to use printk. */
void
check_devanon
(
void
)
void
check_devanon
(
void
)
{
{
int
fd
;
int
fd
;
...
...
arch/um/os-Linux/user_syms.c
浏览文件 @
c1a959d8
...
@@ -34,6 +34,11 @@ EXPORT_SYMBOL(strstr);
...
@@ -34,6 +34,11 @@ EXPORT_SYMBOL(strstr);
int sym(void); \
int sym(void); \
EXPORT_SYMBOL(sym);
EXPORT_SYMBOL(sym);
extern
void
readdir64
(
void
)
__attribute__
((
weak
));
EXPORT_SYMBOL
(
readdir64
);
extern
void
truncate64
(
void
)
__attribute__
((
weak
));
EXPORT_SYMBOL
(
truncate64
);
#ifdef SUBARCH_i386
#ifdef SUBARCH_i386
EXPORT_SYMBOL
(
vsyscall_ehdr
);
EXPORT_SYMBOL
(
vsyscall_ehdr
);
EXPORT_SYMBOL
(
vsyscall_end
);
EXPORT_SYMBOL
(
vsyscall_end
);
...
...
arch/um/sys-i386/Makefile
浏览文件 @
c1a959d8
obj-y
=
bitops.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o
\
obj-y
:=
bitops.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o
\
ptrace_user.o semaphore.o signal.o sigcontext.o stub.o stub_segv.o
\
ptrace_user.o semaphore.o signal.o sigcontext.o syscalls.o sysrq.o
\
syscalls.o sysrq.o sys_call_table.o
sys_call_table.o
obj-$(CONFIG_MODE_SKAS)
+=
stub.o stub_segv.o
obj-$(CONFIG_HIGHMEM)
+=
highmem.o
obj-$(CONFIG_HIGHMEM)
+=
highmem.o
obj-$(CONFIG_MODULES)
+=
module.o
obj-$(CONFIG_MODULES)
+=
module.o
...
...
arch/um/sys-x86_64/Makefile
浏览文件 @
c1a959d8
...
@@ -6,8 +6,9 @@
...
@@ -6,8 +6,9 @@
#XXX: why into lib-y?
#XXX: why into lib-y?
lib-y
=
bitops.o bugs.o csum-partial.o delay.o fault.o ldt.o mem.o memcpy.o
\
lib-y
=
bitops.o bugs.o csum-partial.o delay.o fault.o ldt.o mem.o memcpy.o
\
ptrace.o ptrace_user.o sigcontext.o signal.o stub.o
\
ptrace.o ptrace_user.o sigcontext.o signal.o syscalls.o
\
stub_segv.o syscalls.o syscall_table.o sysrq.o thunk.o
syscall_table.o sysrq.o thunk.o
lib-$(CONFIG_MODE_SKAS)
+=
stub.o stub_segv.o
obj-y
:=
ksyms.o
obj-y
:=
ksyms.o
obj-$(CONFIG_MODULES)
+=
module.o um_module.o
obj-$(CONFIG_MODULES)
+=
module.o um_module.o
...
...
arch/x86_64/mm/init.c
浏览文件 @
c1a959d8
...
@@ -348,7 +348,7 @@ size_zones(unsigned long *z, unsigned long *h,
...
@@ -348,7 +348,7 @@ size_zones(unsigned long *z, unsigned long *h,
}
}
/* Compute holes */
/* Compute holes */
w
=
0
;
w
=
start_pfn
;
for
(
i
=
0
;
i
<
MAX_NR_ZONES
;
i
++
)
{
for
(
i
=
0
;
i
<
MAX_NR_ZONES
;
i
++
)
{
unsigned
long
s
=
w
;
unsigned
long
s
=
w
;
w
+=
z
[
i
];
w
+=
z
[
i
];
...
...
drivers/char/drm/radeon_cp.c
浏览文件 @
c1a959d8
...
@@ -1312,8 +1312,6 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on)
...
@@ -1312,8 +1312,6 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on)
static
int
radeon_do_init_cp
(
drm_device_t
*
dev
,
drm_radeon_init_t
*
init
)
static
int
radeon_do_init_cp
(
drm_device_t
*
dev
,
drm_radeon_init_t
*
init
)
{
{
drm_radeon_private_t
*
dev_priv
=
dev
->
dev_private
;
drm_radeon_private_t
*
dev_priv
=
dev
->
dev_private
;
unsigned
int
mem_size
,
aper_size
;
DRM_DEBUG
(
"
\n
"
);
DRM_DEBUG
(
"
\n
"
);
dev_priv
->
is_pci
=
init
->
is_pci
;
dev_priv
->
is_pci
=
init
->
is_pci
;
...
@@ -1523,13 +1521,8 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init)
...
@@ -1523,13 +1521,8 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init)
+
dev_priv
->
fb_location
)
>>
10
));
+
dev_priv
->
fb_location
)
>>
10
));
dev_priv
->
gart_size
=
init
->
gart_size
;
dev_priv
->
gart_size
=
init
->
gart_size
;
dev_priv
->
gart_vm_start
=
dev_priv
->
fb_location
mem_size
=
RADEON_READ
(
RADEON_CONFIG_MEMSIZE
);
+
RADEON_READ
(
RADEON_CONFIG_APER_SIZE
);
if
(
mem_size
==
0
)
mem_size
=
0x800000
;
aper_size
=
max
(
RADEON_READ
(
RADEON_CONFIG_APER_SIZE
),
mem_size
);
dev_priv
->
gart_vm_start
=
dev_priv
->
fb_location
+
aper_size
;
#if __OS_HAS_AGP
#if __OS_HAS_AGP
if
(
!
dev_priv
->
is_pci
)
if
(
!
dev_priv
->
is_pci
)
...
...
drivers/char/vc_screen.c
浏览文件 @
c1a959d8
...
@@ -419,7 +419,7 @@ vcs_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
...
@@ -419,7 +419,7 @@ vcs_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
while
(
this_round
>
1
)
{
while
(
this_round
>
1
)
{
unsigned
short
w
;
unsigned
short
w
;
w
=
get_unaligned
(((
const
unsigned
short
*
)
con_buf0
));
w
=
get_unaligned
(((
unsigned
short
*
)
con_buf0
));
vcs_scr_writew
(
vc
,
w
,
org
++
);
vcs_scr_writew
(
vc
,
w
,
org
++
);
con_buf0
+=
2
;
con_buf0
+=
2
;
this_round
-=
2
;
this_round
-=
2
;
...
...
drivers/media/video/saa7134/Kconfig
浏览文件 @
c1a959d8
...
@@ -14,7 +14,7 @@ config VIDEO_SAA7134
...
@@ -14,7 +14,7 @@ config VIDEO_SAA7134
config VIDEO_SAA7134_ALSA
config VIDEO_SAA7134_ALSA
tristate "Philips SAA7134 DMA audio support"
tristate "Philips SAA7134 DMA audio support"
depends on VIDEO_SAA7134 && S
OUND && SND && (!VIDEO_SAA7134_OSS || VIDEO_SAA7134_OSS = m)
depends on VIDEO_SAA7134 && S
ND
select SND_PCM_OSS
select SND_PCM_OSS
---help---
---help---
This is a video4linux driver for direct (DMA) audio in
This is a video4linux driver for direct (DMA) audio in
...
@@ -25,7 +25,7 @@ config VIDEO_SAA7134_ALSA
...
@@ -25,7 +25,7 @@ config VIDEO_SAA7134_ALSA
config VIDEO_SAA7134_OSS
config VIDEO_SAA7134_OSS
tristate "Philips SAA7134 DMA audio support (OSS, DEPRECATED)"
tristate "Philips SAA7134 DMA audio support (OSS, DEPRECATED)"
depends on VIDEO_SAA7134 && SOUND_PRIME &&
(!VIDEO_SAA7134_ALSA || VIDEO_SAA7134_ALSA = m)
depends on VIDEO_SAA7134 && SOUND_PRIME &&
!VIDEO_SAA7134_ALSA
---help---
---help---
This is a video4linux driver for direct (DMA) audio in
This is a video4linux driver for direct (DMA) audio in
Philips SAA713x based TV cards using OSS
Philips SAA713x based TV cards using OSS
...
...
drivers/mmc/mmc_block.c
浏览文件 @
c1a959d8
...
@@ -359,7 +359,12 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
...
@@ -359,7 +359,12 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
md
->
block_bits
=
card
->
csd
.
read_blkbits
;
md
->
block_bits
=
card
->
csd
.
read_blkbits
;
blk_queue_hardsect_size
(
md
->
queue
.
queue
,
1
<<
md
->
block_bits
);
blk_queue_hardsect_size
(
md
->
queue
.
queue
,
1
<<
md
->
block_bits
);
set_capacity
(
md
->
disk
,
card
->
csd
.
capacity
);
/*
* The CSD capacity field is in units of read_blkbits.
* set_capacity takes units of 512 bytes.
*/
set_capacity
(
md
->
disk
,
card
->
csd
.
capacity
<<
(
card
->
csd
.
read_blkbits
-
9
));
}
}
out:
out:
return
md
;
return
md
;
...
@@ -373,7 +378,7 @@ mmc_blk_set_blksize(struct mmc_blk_data *md, struct mmc_card *card)
...
@@ -373,7 +378,7 @@ mmc_blk_set_blksize(struct mmc_blk_data *md, struct mmc_card *card)
mmc_card_claim_host
(
card
);
mmc_card_claim_host
(
card
);
cmd
.
opcode
=
MMC_SET_BLOCKLEN
;
cmd
.
opcode
=
MMC_SET_BLOCKLEN
;
cmd
.
arg
=
1
<<
card
->
csd
.
read_blk
bits
;
cmd
.
arg
=
1
<<
md
->
block_
bits
;
cmd
.
flags
=
MMC_RSP_R1
;
cmd
.
flags
=
MMC_RSP_R1
;
err
=
mmc_wait_for_cmd
(
card
->
host
,
&
cmd
,
5
);
err
=
mmc_wait_for_cmd
(
card
->
host
,
&
cmd
,
5
);
mmc_card_release_host
(
card
);
mmc_card_release_host
(
card
);
...
@@ -412,10 +417,9 @@ static int mmc_blk_probe(struct mmc_card *card)
...
@@ -412,10 +417,9 @@ static int mmc_blk_probe(struct mmc_card *card)
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
printk
(
KERN_INFO
"%s: %s %s %
d
KiB %s
\n
"
,
printk
(
KERN_INFO
"%s: %s %s %
lu
KiB %s
\n
"
,
md
->
disk
->
disk_name
,
mmc_card_id
(
card
),
mmc_card_name
(
card
),
md
->
disk
->
disk_name
,
mmc_card_id
(
card
),
mmc_card_name
(
card
),
(
card
->
csd
.
capacity
<<
card
->
csd
.
read_blkbits
)
/
1024
,
get_capacity
(
md
->
disk
)
>>
1
,
mmc_blk_readonly
(
card
)
?
"(ro)"
:
""
);
mmc_blk_readonly
(
card
)
?
"(ro)"
:
""
);
mmc_set_drvdata
(
card
,
md
);
mmc_set_drvdata
(
card
,
md
);
add_disk
(
md
->
disk
);
add_disk
(
md
->
disk
);
...
...
drivers/serial/amba-pl011.c
浏览文件 @
c1a959d8
...
@@ -160,7 +160,7 @@ pl011_rx_chars(struct uart_amba_port *uap)
...
@@ -160,7 +160,7 @@ pl011_rx_chars(struct uart_amba_port *uap)
flag
=
TTY_FRAME
;
flag
=
TTY_FRAME
;
}
}
if
(
uart_handle_sysrq_char
(
&
uap
->
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
&
uap
->
port
,
ch
&
255
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
uart_insert_char
(
&
uap
->
port
,
ch
,
UART011_DR_OE
,
ch
,
flag
);
uart_insert_char
(
&
uap
->
port
,
ch
,
UART011_DR_OE
,
ch
,
flag
);
...
...
drivers/usb/input/aiptek.c
浏览文件 @
c1a959d8
...
@@ -2103,7 +2103,7 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
...
@@ -2103,7 +2103,7 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
* values.
* values.
*/
*/
input_set_abs_params
(
inputdev
,
ABS_X
,
0
,
2999
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_X
,
0
,
2999
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_
X
,
0
,
2249
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_
Y
,
0
,
2249
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_PRESSURE
,
0
,
511
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_PRESSURE
,
0
,
511
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_TILT_X
,
AIPTEK_TILT_MIN
,
AIPTEK_TILT_MAX
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_TILT_X
,
AIPTEK_TILT_MIN
,
AIPTEK_TILT_MAX
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_TILT_Y
,
AIPTEK_TILT_MIN
,
AIPTEK_TILT_MAX
,
0
,
0
);
input_set_abs_params
(
inputdev
,
ABS_TILT_Y
,
AIPTEK_TILT_MIN
,
AIPTEK_TILT_MAX
,
0
,
0
);
...
...
fs/hostfs/hostfs_kern.c
浏览文件 @
c1a959d8
...
@@ -501,11 +501,16 @@ int hostfs_commit_write(struct file *file, struct page *page, unsigned from,
...
@@ -501,11 +501,16 @@ int hostfs_commit_write(struct file *file, struct page *page, unsigned from,
long
long
start
;
long
long
start
;
int
err
=
0
;
int
err
=
0
;
start
=
(
long
long
)
(
page
->
index
<<
PAGE_CACHE_SHIFT
)
+
from
;
start
=
(
((
long
long
)
page
->
index
)
<<
PAGE_CACHE_SHIFT
)
+
from
;
buffer
=
kmap
(
page
);
buffer
=
kmap
(
page
);
err
=
write_file
(
FILE_HOSTFS_I
(
file
)
->
fd
,
&
start
,
buffer
+
from
,
err
=
write_file
(
FILE_HOSTFS_I
(
file
)
->
fd
,
&
start
,
buffer
+
from
,
to
-
from
);
to
-
from
);
if
(
err
>
0
)
err
=
0
;
if
(
err
>
0
)
err
=
0
;
/* Actually, if !err, write_file has added to-from to start, so, despite
* the appearance, we are comparing i_size against the _last_ written
* location, as we should. */
if
(
!
err
&&
(
start
>
inode
->
i_size
))
if
(
!
err
&&
(
start
>
inode
->
i_size
))
inode
->
i_size
=
start
;
inode
->
i_size
=
start
;
...
@@ -910,10 +915,8 @@ static struct inode_operations hostfs_dir_iops = {
...
@@ -910,10 +915,8 @@ static struct inode_operations hostfs_dir_iops = {
int
hostfs_link_readpage
(
struct
file
*
file
,
struct
page
*
page
)
int
hostfs_link_readpage
(
struct
file
*
file
,
struct
page
*
page
)
{
{
char
*
buffer
,
*
name
;
char
*
buffer
,
*
name
;
long
long
start
;
int
err
;
int
err
;
start
=
page
->
index
<<
PAGE_CACHE_SHIFT
;
buffer
=
kmap
(
page
);
buffer
=
kmap
(
page
);
name
=
inode_name
(
page
->
mapping
->
host
,
0
);
name
=
inode_name
(
page
->
mapping
->
host
,
0
);
if
(
name
==
NULL
)
return
(
-
ENOMEM
);
if
(
name
==
NULL
)
return
(
-
ENOMEM
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录