diff options
author | Len Brown <len.brown@intel.com> | 2005-12-30 00:35:53 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-12-30 00:35:53 -0500 |
commit | c1a959d8ef4e343f11c8c0f9a693815b6dc76886 (patch) | |
tree | bc5630e668d1e3d08c71091d17d011dd0468c71b | |
parent | 6968e50c2b53805219618203db3d98566dfa1fdd (diff) | |
parent | 9e625ff8a37aefcc177b19614ffcffb5bc6eeea1 (diff) |
Pull linus into release branch
-rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 2 | ||||
-rw-r--r-- | arch/um/os-Linux/start_up.c | 22 | ||||
-rw-r--r-- | arch/um/os-Linux/user_syms.c | 5 | ||||
-rw-r--r-- | arch/um/sys-i386/Makefile | 8 | ||||
-rw-r--r-- | arch/um/sys-x86_64/Makefile | 5 | ||||
-rw-r--r-- | arch/x86_64/mm/init.c | 2 | ||||
-rw-r--r-- | drivers/char/drm/radeon_cp.c | 11 | ||||
-rw-r--r-- | drivers/char/vc_screen.c | 2 | ||||
-rw-r--r-- | drivers/media/video/saa7134/Kconfig | 4 | ||||
-rw-r--r-- | drivers/mmc/mmc_block.c | 14 | ||||
-rw-r--r-- | drivers/serial/amba-pl011.c | 2 | ||||
-rw-r--r-- | drivers/usb/input/aiptek.c | 2 | ||||
-rw-r--r-- | fs/hostfs/hostfs_kern.c | 9 |
13 files changed, 49 insertions, 39 deletions
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index a33583f3b0e7..a606504678bd 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -514,7 +514,7 @@ void __init htab_initialize(void) | |||
514 | #undef KB | 514 | #undef KB |
515 | #undef MB | 515 | #undef MB |
516 | 516 | ||
517 | void __init htab_initialize_secondary(void) | 517 | void htab_initialize_secondary(void) |
518 | { | 518 | { |
519 | if (!platform_is_lpar()) | 519 | if (!platform_is_lpar()) |
520 | mtspr(SPRN_SDR1, _SDR1); | 520 | mtspr(SPRN_SDR1, _SDR1); |
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c index 37517d49c4ae..29a9e3f43763 100644 --- a/arch/um/os-Linux/start_up.c +++ b/arch/um/os-Linux/start_up.c | |||
@@ -116,16 +116,16 @@ static int stop_ptraced_child(int pid, void *stack, int exitcode, | |||
116 | if(!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) { | 116 | if(!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) { |
117 | int exit_with = WEXITSTATUS(status); | 117 | int exit_with = WEXITSTATUS(status); |
118 | if (exit_with == 2) | 118 | if (exit_with == 2) |
119 | printk("check_ptrace : child exited with status 2. " | 119 | printf("check_ptrace : child exited with status 2. " |
120 | "Serious trouble happening! Try updating your " | 120 | "Serious trouble happening! Try updating your " |
121 | "host skas patch!\nDisabling SYSEMU support."); | 121 | "host skas patch!\nDisabling SYSEMU support."); |
122 | printk("check_ptrace : child exited with exitcode %d, while " | 122 | printf("check_ptrace : child exited with exitcode %d, while " |
123 | "expecting %d; status 0x%x", exit_with, | 123 | "expecting %d; status 0x%x", exit_with, |
124 | exitcode, status); | 124 | exitcode, status); |
125 | if (mustpanic) | 125 | if (mustpanic) |
126 | panic("\n"); | 126 | panic("\n"); |
127 | else | 127 | else |
128 | printk("\n"); | 128 | printf("\n"); |
129 | ret = -1; | 129 | ret = -1; |
130 | } | 130 | } |
131 | 131 | ||
@@ -183,7 +183,7 @@ static void __init check_sysemu(void) | |||
183 | void *stack; | 183 | void *stack; |
184 | int pid, n, status, count=0; | 184 | int pid, n, status, count=0; |
185 | 185 | ||
186 | printk("Checking syscall emulation patch for ptrace..."); | 186 | printf("Checking syscall emulation patch for ptrace..."); |
187 | sysemu_supported = 0; | 187 | sysemu_supported = 0; |
188 | pid = start_ptraced_child(&stack); | 188 | pid = start_ptraced_child(&stack); |
189 | 189 | ||
@@ -207,10 +207,10 @@ static void __init check_sysemu(void) | |||
207 | goto fail_stopped; | 207 | goto fail_stopped; |
208 | 208 | ||
209 | sysemu_supported = 1; | 209 | sysemu_supported = 1; |
210 | printk("OK\n"); | 210 | printf("OK\n"); |
211 | set_using_sysemu(!force_sysemu_disabled); | 211 | set_using_sysemu(!force_sysemu_disabled); |
212 | 212 | ||
213 | printk("Checking advanced syscall emulation patch for ptrace..."); | 213 | printf("Checking advanced syscall emulation patch for ptrace..."); |
214 | pid = start_ptraced_child(&stack); | 214 | pid = start_ptraced_child(&stack); |
215 | 215 | ||
216 | if(ptrace(PTRACE_OLDSETOPTIONS, pid, 0, | 216 | if(ptrace(PTRACE_OLDSETOPTIONS, pid, 0, |
@@ -246,7 +246,7 @@ static void __init check_sysemu(void) | |||
246 | goto fail_stopped; | 246 | goto fail_stopped; |
247 | 247 | ||
248 | sysemu_supported = 2; | 248 | sysemu_supported = 2; |
249 | printk("OK\n"); | 249 | printf("OK\n"); |
250 | 250 | ||
251 | if ( !force_sysemu_disabled ) | 251 | if ( !force_sysemu_disabled ) |
252 | set_using_sysemu(sysemu_supported); | 252 | set_using_sysemu(sysemu_supported); |
@@ -255,7 +255,7 @@ static void __init check_sysemu(void) | |||
255 | fail: | 255 | fail: |
256 | stop_ptraced_child(pid, stack, 1, 0); | 256 | stop_ptraced_child(pid, stack, 1, 0); |
257 | fail_stopped: | 257 | fail_stopped: |
258 | printk("missing\n"); | 258 | printf("missing\n"); |
259 | } | 259 | } |
260 | 260 | ||
261 | static void __init check_ptrace(void) | 261 | static void __init check_ptrace(void) |
@@ -263,7 +263,7 @@ static void __init check_ptrace(void) | |||
263 | void *stack; | 263 | void *stack; |
264 | int pid, syscall, n, status; | 264 | int pid, syscall, n, status; |
265 | 265 | ||
266 | printk("Checking that ptrace can change system call numbers..."); | 266 | printf("Checking that ptrace can change system call numbers..."); |
267 | pid = start_ptraced_child(&stack); | 267 | pid = start_ptraced_child(&stack); |
268 | 268 | ||
269 | if(ptrace(PTRACE_OLDSETOPTIONS, pid, 0, (void *)PTRACE_O_TRACESYSGOOD) < 0) | 269 | if(ptrace(PTRACE_OLDSETOPTIONS, pid, 0, (void *)PTRACE_O_TRACESYSGOOD) < 0) |
@@ -292,7 +292,7 @@ static void __init check_ptrace(void) | |||
292 | } | 292 | } |
293 | } | 293 | } |
294 | stop_ptraced_child(pid, stack, 0, 1); | 294 | stop_ptraced_child(pid, stack, 0, 1); |
295 | printk("OK\n"); | 295 | printf("OK\n"); |
296 | check_sysemu(); | 296 | check_sysemu(); |
297 | } | 297 | } |
298 | 298 | ||
@@ -472,6 +472,8 @@ int can_do_skas(void) | |||
472 | 472 | ||
473 | int have_devanon = 0; | 473 | int have_devanon = 0; |
474 | 474 | ||
475 | /* Runs on boot kernel stack - already safe to use printk. */ | ||
476 | |||
475 | void check_devanon(void) | 477 | void check_devanon(void) |
476 | { | 478 | { |
477 | int fd; | 479 | int fd; |
diff --git a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c index 56d3f870926b..8da6ab31152a 100644 --- a/arch/um/os-Linux/user_syms.c +++ b/arch/um/os-Linux/user_syms.c | |||
@@ -34,6 +34,11 @@ EXPORT_SYMBOL(strstr); | |||
34 | int sym(void); \ | 34 | int sym(void); \ |
35 | EXPORT_SYMBOL(sym); | 35 | EXPORT_SYMBOL(sym); |
36 | 36 | ||
37 | extern void readdir64(void) __attribute__((weak)); | ||
38 | EXPORT_SYMBOL(readdir64); | ||
39 | extern void truncate64(void) __attribute__((weak)); | ||
40 | EXPORT_SYMBOL(truncate64); | ||
41 | |||
37 | #ifdef SUBARCH_i386 | 42 | #ifdef SUBARCH_i386 |
38 | EXPORT_SYMBOL(vsyscall_ehdr); | 43 | EXPORT_SYMBOL(vsyscall_ehdr); |
39 | EXPORT_SYMBOL(vsyscall_end); | 44 | EXPORT_SYMBOL(vsyscall_end); |
diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile index 150059dbee12..f5fd5b0156d0 100644 --- a/arch/um/sys-i386/Makefile +++ b/arch/um/sys-i386/Makefile | |||
@@ -1,6 +1,8 @@ | |||
1 | obj-y = bitops.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \ | 1 | obj-y := bitops.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \ |
2 | ptrace_user.o semaphore.o signal.o sigcontext.o stub.o stub_segv.o \ | 2 | ptrace_user.o semaphore.o signal.o sigcontext.o syscalls.o sysrq.o \ |
3 | syscalls.o sysrq.o sys_call_table.o | 3 | sys_call_table.o |
4 | |||
5 | obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o | ||
4 | 6 | ||
5 | obj-$(CONFIG_HIGHMEM) += highmem.o | 7 | obj-$(CONFIG_HIGHMEM) += highmem.o |
6 | obj-$(CONFIG_MODULES) += module.o | 8 | obj-$(CONFIG_MODULES) += module.o |
diff --git a/arch/um/sys-x86_64/Makefile b/arch/um/sys-x86_64/Makefile index 00b2025427df..a351091fbd99 100644 --- a/arch/um/sys-x86_64/Makefile +++ b/arch/um/sys-x86_64/Makefile | |||
@@ -6,8 +6,9 @@ | |||
6 | 6 | ||
7 | #XXX: why into lib-y? | 7 | #XXX: why into lib-y? |
8 | lib-y = bitops.o bugs.o csum-partial.o delay.o fault.o ldt.o mem.o memcpy.o \ | 8 | lib-y = bitops.o bugs.o csum-partial.o delay.o fault.o ldt.o mem.o memcpy.o \ |
9 | ptrace.o ptrace_user.o sigcontext.o signal.o stub.o \ | 9 | ptrace.o ptrace_user.o sigcontext.o signal.o syscalls.o \ |
10 | stub_segv.o syscalls.o syscall_table.o sysrq.o thunk.o | 10 | syscall_table.o sysrq.o thunk.o |
11 | lib-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o | ||
11 | 12 | ||
12 | obj-y := ksyms.o | 13 | obj-y := ksyms.o |
13 | obj-$(CONFIG_MODULES) += module.o um_module.o | 14 | obj-$(CONFIG_MODULES) += module.o um_module.o |
diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c index 286f6a624c3a..c016dfe84784 100644 --- a/arch/x86_64/mm/init.c +++ b/arch/x86_64/mm/init.c | |||
@@ -348,7 +348,7 @@ size_zones(unsigned long *z, unsigned long *h, | |||
348 | } | 348 | } |
349 | 349 | ||
350 | /* Compute holes */ | 350 | /* Compute holes */ |
351 | w = 0; | 351 | w = start_pfn; |
352 | for (i = 0; i < MAX_NR_ZONES; i++) { | 352 | for (i = 0; i < MAX_NR_ZONES; i++) { |
353 | unsigned long s = w; | 353 | unsigned long s = w; |
354 | w += z[i]; | 354 | w += z[i]; |
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index b517ae515801..342302d46743 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c | |||
@@ -1312,8 +1312,6 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on) | |||
1312 | static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) | 1312 | static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) |
1313 | { | 1313 | { |
1314 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1314 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1315 | unsigned int mem_size, aper_size; | ||
1316 | |||
1317 | DRM_DEBUG("\n"); | 1315 | DRM_DEBUG("\n"); |
1318 | 1316 | ||
1319 | dev_priv->is_pci = init->is_pci; | 1317 | 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 | + dev_priv->fb_location) >> 10)); | 1521 | + dev_priv->fb_location) >> 10)); |
1524 | 1522 | ||
1525 | dev_priv->gart_size = init->gart_size; | 1523 | dev_priv->gart_size = init->gart_size; |
1526 | 1524 | dev_priv->gart_vm_start = dev_priv->fb_location | |
1527 | mem_size = RADEON_READ(RADEON_CONFIG_MEMSIZE); | 1525 | + RADEON_READ(RADEON_CONFIG_APER_SIZE); |
1528 | if (mem_size == 0) | ||
1529 | mem_size = 0x800000; | ||
1530 | aper_size = max(RADEON_READ(RADEON_CONFIG_APER_SIZE), mem_size); | ||
1531 | |||
1532 | dev_priv->gart_vm_start = dev_priv->fb_location + aper_size; | ||
1533 | 1526 | ||
1534 | #if __OS_HAS_AGP | 1527 | #if __OS_HAS_AGP |
1535 | if (!dev_priv->is_pci) | 1528 | if (!dev_priv->is_pci) |
diff --git a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c index f66c7ad6fd38..3c1dafaa3441 100644 --- a/drivers/char/vc_screen.c +++ b/drivers/char/vc_screen.c | |||
@@ -419,7 +419,7 @@ vcs_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) | |||
419 | while (this_round > 1) { | 419 | while (this_round > 1) { |
420 | unsigned short w; | 420 | unsigned short w; |
421 | 421 | ||
422 | w = get_unaligned(((const unsigned short *)con_buf0)); | 422 | w = get_unaligned(((unsigned short *)con_buf0)); |
423 | vcs_scr_writew(vc, w, org++); | 423 | vcs_scr_writew(vc, w, org++); |
424 | con_buf0 += 2; | 424 | con_buf0 += 2; |
425 | this_round -= 2; | 425 | this_round -= 2; |
diff --git a/drivers/media/video/saa7134/Kconfig b/drivers/media/video/saa7134/Kconfig index c0f604a6fe42..8a5c3e71b37d 100644 --- a/drivers/media/video/saa7134/Kconfig +++ b/drivers/media/video/saa7134/Kconfig | |||
@@ -14,7 +14,7 @@ config VIDEO_SAA7134 | |||
14 | 14 | ||
15 | config VIDEO_SAA7134_ALSA | 15 | config VIDEO_SAA7134_ALSA |
16 | tristate "Philips SAA7134 DMA audio support" | 16 | tristate "Philips SAA7134 DMA audio support" |
17 | depends on VIDEO_SAA7134 && SOUND && SND && (!VIDEO_SAA7134_OSS || VIDEO_SAA7134_OSS = m) | 17 | depends on VIDEO_SAA7134 && SND |
18 | select SND_PCM_OSS | 18 | select SND_PCM_OSS |
19 | ---help--- | 19 | ---help--- |
20 | This is a video4linux driver for direct (DMA) audio in | 20 | This is a video4linux driver for direct (DMA) audio in |
@@ -25,7 +25,7 @@ config VIDEO_SAA7134_ALSA | |||
25 | 25 | ||
26 | config VIDEO_SAA7134_OSS | 26 | config VIDEO_SAA7134_OSS |
27 | tristate "Philips SAA7134 DMA audio support (OSS, DEPRECATED)" | 27 | tristate "Philips SAA7134 DMA audio support (OSS, DEPRECATED)" |
28 | depends on VIDEO_SAA7134 && SOUND_PRIME && (!VIDEO_SAA7134_ALSA || VIDEO_SAA7134_ALSA = m) | 28 | depends on VIDEO_SAA7134 && SOUND_PRIME && !VIDEO_SAA7134_ALSA |
29 | ---help--- | 29 | ---help--- |
30 | This is a video4linux driver for direct (DMA) audio in | 30 | This is a video4linux driver for direct (DMA) audio in |
31 | Philips SAA713x based TV cards using OSS | 31 | Philips SAA713x based TV cards using OSS |
diff --git a/drivers/mmc/mmc_block.c b/drivers/mmc/mmc_block.c index d91fcf7c3178..abcf19116d70 100644 --- a/drivers/mmc/mmc_block.c +++ b/drivers/mmc/mmc_block.c | |||
@@ -359,7 +359,12 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card) | |||
359 | md->block_bits = card->csd.read_blkbits; | 359 | md->block_bits = card->csd.read_blkbits; |
360 | 360 | ||
361 | blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits); | 361 | blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits); |
362 | set_capacity(md->disk, card->csd.capacity); | 362 | |
363 | /* | ||
364 | * The CSD capacity field is in units of read_blkbits. | ||
365 | * set_capacity takes units of 512 bytes. | ||
366 | */ | ||
367 | set_capacity(md->disk, card->csd.capacity << (card->csd.read_blkbits - 9)); | ||
363 | } | 368 | } |
364 | out: | 369 | out: |
365 | return md; | 370 | return md; |
@@ -373,7 +378,7 @@ mmc_blk_set_blksize(struct mmc_blk_data *md, struct mmc_card *card) | |||
373 | 378 | ||
374 | mmc_card_claim_host(card); | 379 | mmc_card_claim_host(card); |
375 | cmd.opcode = MMC_SET_BLOCKLEN; | 380 | cmd.opcode = MMC_SET_BLOCKLEN; |
376 | cmd.arg = 1 << card->csd.read_blkbits; | 381 | cmd.arg = 1 << md->block_bits; |
377 | cmd.flags = MMC_RSP_R1; | 382 | cmd.flags = MMC_RSP_R1; |
378 | err = mmc_wait_for_cmd(card->host, &cmd, 5); | 383 | err = mmc_wait_for_cmd(card->host, &cmd, 5); |
379 | mmc_card_release_host(card); | 384 | mmc_card_release_host(card); |
@@ -412,10 +417,9 @@ static int mmc_blk_probe(struct mmc_card *card) | |||
412 | if (err) | 417 | if (err) |
413 | goto out; | 418 | goto out; |
414 | 419 | ||
415 | printk(KERN_INFO "%s: %s %s %dKiB %s\n", | 420 | printk(KERN_INFO "%s: %s %s %luKiB %s\n", |
416 | md->disk->disk_name, mmc_card_id(card), mmc_card_name(card), | 421 | md->disk->disk_name, mmc_card_id(card), mmc_card_name(card), |
417 | (card->csd.capacity << card->csd.read_blkbits) / 1024, | 422 | get_capacity(md->disk) >> 1, mmc_blk_readonly(card)?"(ro)":""); |
418 | mmc_blk_readonly(card)?"(ro)":""); | ||
419 | 423 | ||
420 | mmc_set_drvdata(card, md); | 424 | mmc_set_drvdata(card, md); |
421 | add_disk(md->disk); | 425 | add_disk(md->disk); |
diff --git a/drivers/serial/amba-pl011.c b/drivers/serial/amba-pl011.c index 89d7bd3eaee3..d84476ee6592 100644 --- a/drivers/serial/amba-pl011.c +++ b/drivers/serial/amba-pl011.c | |||
@@ -160,7 +160,7 @@ pl011_rx_chars(struct uart_amba_port *uap) | |||
160 | flag = TTY_FRAME; | 160 | flag = TTY_FRAME; |
161 | } | 161 | } |
162 | 162 | ||
163 | if (uart_handle_sysrq_char(&uap->port, ch, regs)) | 163 | if (uart_handle_sysrq_char(&uap->port, ch & 255, regs)) |
164 | goto ignore_char; | 164 | goto ignore_char; |
165 | 165 | ||
166 | uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag); | 166 | uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag); |
diff --git a/drivers/usb/input/aiptek.c b/drivers/usb/input/aiptek.c index 1c3b472a3bca..0e2505c073db 100644 --- a/drivers/usb/input/aiptek.c +++ b/drivers/usb/input/aiptek.c | |||
@@ -2103,7 +2103,7 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
2103 | * values. | 2103 | * values. |
2104 | */ | 2104 | */ |
2105 | input_set_abs_params(inputdev, ABS_X, 0, 2999, 0, 0); | 2105 | input_set_abs_params(inputdev, ABS_X, 0, 2999, 0, 0); |
2106 | input_set_abs_params(inputdev, ABS_X, 0, 2249, 0, 0); | 2106 | input_set_abs_params(inputdev, ABS_Y, 0, 2249, 0, 0); |
2107 | input_set_abs_params(inputdev, ABS_PRESSURE, 0, 511, 0, 0); | 2107 | input_set_abs_params(inputdev, ABS_PRESSURE, 0, 511, 0, 0); |
2108 | input_set_abs_params(inputdev, ABS_TILT_X, AIPTEK_TILT_MIN, AIPTEK_TILT_MAX, 0, 0); | 2108 | input_set_abs_params(inputdev, ABS_TILT_X, AIPTEK_TILT_MIN, AIPTEK_TILT_MAX, 0, 0); |
2109 | input_set_abs_params(inputdev, ABS_TILT_Y, AIPTEK_TILT_MIN, AIPTEK_TILT_MAX, 0, 0); | 2109 | input_set_abs_params(inputdev, ABS_TILT_Y, AIPTEK_TILT_MIN, AIPTEK_TILT_MAX, 0, 0); |
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 4684eb7d48c6..b3ad0bd0312f 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c | |||
@@ -501,11 +501,16 @@ int hostfs_commit_write(struct file *file, struct page *page, unsigned from, | |||
501 | long long start; | 501 | long long start; |
502 | int err = 0; | 502 | int err = 0; |
503 | 503 | ||
504 | start = (long long) (page->index << PAGE_CACHE_SHIFT) + from; | 504 | start = (((long long) page->index) << PAGE_CACHE_SHIFT) + from; |
505 | buffer = kmap(page); | 505 | buffer = kmap(page); |
506 | err = write_file(FILE_HOSTFS_I(file)->fd, &start, buffer + from, | 506 | err = write_file(FILE_HOSTFS_I(file)->fd, &start, buffer + from, |
507 | to - from); | 507 | to - from); |
508 | if(err > 0) err = 0; | 508 | if(err > 0) err = 0; |
509 | |||
510 | /* Actually, if !err, write_file has added to-from to start, so, despite | ||
511 | * the appearance, we are comparing i_size against the _last_ written | ||
512 | * location, as we should. */ | ||
513 | |||
509 | if(!err && (start > inode->i_size)) | 514 | if(!err && (start > inode->i_size)) |
510 | inode->i_size = start; | 515 | inode->i_size = start; |
511 | 516 | ||
@@ -910,10 +915,8 @@ static struct inode_operations hostfs_dir_iops = { | |||
910 | int hostfs_link_readpage(struct file *file, struct page *page) | 915 | int hostfs_link_readpage(struct file *file, struct page *page) |
911 | { | 916 | { |
912 | char *buffer, *name; | 917 | char *buffer, *name; |
913 | long long start; | ||
914 | int err; | 918 | int err; |
915 | 919 | ||
916 | start = page->index << PAGE_CACHE_SHIFT; | ||
917 | buffer = kmap(page); | 920 | buffer = kmap(page); |
918 | name = inode_name(page->mapping->host, 0); | 921 | name = inode_name(page->mapping->host, 0); |
919 | if(name == NULL) return(-ENOMEM); | 922 | if(name == NULL) return(-ENOMEM); |