diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2006-09-23 08:34:10 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2006-09-23 08:34:10 -0400 |
commit | 919251758195919ae3568021bc221e4f8c4b20eb (patch) | |
tree | 81137a037ff8e6c91cc8de72d568275605c653c5 /arch/s390/hypfs | |
parent | c394f1eafef61c6666f5876afde6110a276c4c9f (diff) | |
parent | 3eeab61aa3ddd3c0bedb7449ada1599de22fdb5a (diff) |
Merge branch 'mainline' into upstream-linus
Diffstat (limited to 'arch/s390/hypfs')
-rw-r--r-- | arch/s390/hypfs/hypfs.h | 2 | ||||
-rw-r--r-- | arch/s390/hypfs/hypfs_diag.c | 16 | ||||
-rw-r--r-- | arch/s390/hypfs/hypfs_diag.h | 2 | ||||
-rw-r--r-- | arch/s390/hypfs/inode.c | 12 |
4 files changed, 19 insertions, 13 deletions
diff --git a/arch/s390/hypfs/hypfs.h b/arch/s390/hypfs/hypfs.h index ea5567be00fc..f3dbd91965c6 100644 --- a/arch/s390/hypfs/hypfs.h +++ b/arch/s390/hypfs/hypfs.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * fs/hypfs/hypfs.h | 2 | * arch/s390/hypfs/hypfs.h |
3 | * Hypervisor filesystem for Linux on s390. | 3 | * Hypervisor filesystem for Linux on s390. |
4 | * | 4 | * |
5 | * Copyright (C) IBM Corp. 2006 | 5 | * Copyright (C) IBM Corp. 2006 |
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c index 1785bce2b919..75144efbb92b 100644 --- a/arch/s390/hypfs/hypfs_diag.c +++ b/arch/s390/hypfs/hypfs_diag.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * fs/hypfs/hypfs_diag.c | 2 | * arch/s390/hypfs/hypfs_diag.c |
3 | * Hypervisor filesystem for Linux on s390. Diag 204 and 224 | 3 | * Hypervisor filesystem for Linux on s390. Diag 204 and 224 |
4 | * implementation. | 4 | * implementation. |
5 | * | 5 | * |
@@ -432,12 +432,14 @@ static int diag204_probe(void) | |||
432 | 432 | ||
433 | buf = diag204_get_buffer(INFO_EXT, &pages); | 433 | buf = diag204_get_buffer(INFO_EXT, &pages); |
434 | if (!IS_ERR(buf)) { | 434 | if (!IS_ERR(buf)) { |
435 | if (diag204(SUBC_STIB7 | INFO_EXT, pages, buf) >= 0) { | 435 | if (diag204((unsigned long)SUBC_STIB7 | |
436 | (unsigned long)INFO_EXT, pages, buf) >= 0) { | ||
436 | diag204_store_sc = SUBC_STIB7; | 437 | diag204_store_sc = SUBC_STIB7; |
437 | diag204_info_type = INFO_EXT; | 438 | diag204_info_type = INFO_EXT; |
438 | goto out; | 439 | goto out; |
439 | } | 440 | } |
440 | if (diag204(SUBC_STIB6 | INFO_EXT, pages, buf) >= 0) { | 441 | if (diag204((unsigned long)SUBC_STIB6 | |
442 | (unsigned long)INFO_EXT, pages, buf) >= 0) { | ||
441 | diag204_store_sc = SUBC_STIB7; | 443 | diag204_store_sc = SUBC_STIB7; |
442 | diag204_info_type = INFO_EXT; | 444 | diag204_info_type = INFO_EXT; |
443 | goto out; | 445 | goto out; |
@@ -452,7 +454,8 @@ static int diag204_probe(void) | |||
452 | rc = PTR_ERR(buf); | 454 | rc = PTR_ERR(buf); |
453 | goto fail_alloc; | 455 | goto fail_alloc; |
454 | } | 456 | } |
455 | if (diag204(SUBC_STIB4 | INFO_SIMPLE, pages, buf) >= 0) { | 457 | if (diag204((unsigned long)SUBC_STIB4 | |
458 | (unsigned long)INFO_SIMPLE, pages, buf) >= 0) { | ||
456 | diag204_store_sc = SUBC_STIB4; | 459 | diag204_store_sc = SUBC_STIB4; |
457 | diag204_info_type = INFO_SIMPLE; | 460 | diag204_info_type = INFO_SIMPLE; |
458 | goto out; | 461 | goto out; |
@@ -476,7 +479,8 @@ static void *diag204_store(void) | |||
476 | buf = diag204_get_buffer(diag204_info_type, &pages); | 479 | buf = diag204_get_buffer(diag204_info_type, &pages); |
477 | if (IS_ERR(buf)) | 480 | if (IS_ERR(buf)) |
478 | goto out; | 481 | goto out; |
479 | if (diag204(diag204_store_sc | diag204_info_type, pages, buf) < 0) | 482 | if (diag204((unsigned long)diag204_store_sc | |
483 | (unsigned long)diag204_info_type, pages, buf) < 0) | ||
480 | return ERR_PTR(-ENOSYS); | 484 | return ERR_PTR(-ENOSYS); |
481 | out: | 485 | out: |
482 | return buf; | 486 | return buf; |
@@ -531,7 +535,7 @@ __init int hypfs_diag_init(void) | |||
531 | return rc; | 535 | return rc; |
532 | } | 536 | } |
533 | 537 | ||
534 | __exit void hypfs_diag_exit(void) | 538 | void hypfs_diag_exit(void) |
535 | { | 539 | { |
536 | diag224_delete_name_table(); | 540 | diag224_delete_name_table(); |
537 | diag204_free_buffer(); | 541 | diag204_free_buffer(); |
diff --git a/arch/s390/hypfs/hypfs_diag.h b/arch/s390/hypfs/hypfs_diag.h index 793dea6b9bb6..256b384aebe1 100644 --- a/arch/s390/hypfs/hypfs_diag.h +++ b/arch/s390/hypfs/hypfs_diag.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * fs/hypfs/hypfs_diag.h | 2 | * arch/s390/hypfs_diag.h |
3 | * Hypervisor filesystem for Linux on s390. | 3 | * Hypervisor filesystem for Linux on s390. |
4 | * | 4 | * |
5 | * Copyright (C) IBM Corp. 2006 | 5 | * Copyright (C) IBM Corp. 2006 |
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c index 18c091925ea5..bdade5f2e325 100644 --- a/arch/s390/hypfs/inode.c +++ b/arch/s390/hypfs/inode.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * fs/hypfs/inode.c | 2 | * arch/s390/hypfs/inode.c |
3 | * Hypervisor filesystem for Linux on s390. | 3 | * Hypervisor filesystem for Linux on s390. |
4 | * | 4 | * |
5 | * Copyright (C) IBM Corp. 2006 | 5 | * Copyright (C) IBM Corp. 2006 |
@@ -312,10 +312,12 @@ static void hypfs_kill_super(struct super_block *sb) | |||
312 | { | 312 | { |
313 | struct hypfs_sb_info *sb_info = sb->s_fs_info; | 313 | struct hypfs_sb_info *sb_info = sb->s_fs_info; |
314 | 314 | ||
315 | hypfs_delete_tree(sb->s_root); | 315 | if (sb->s_root) { |
316 | hypfs_remove(sb_info->update_file); | 316 | hypfs_delete_tree(sb->s_root); |
317 | kfree(sb->s_fs_info); | 317 | hypfs_remove(sb_info->update_file); |
318 | sb->s_fs_info = NULL; | 318 | kfree(sb->s_fs_info); |
319 | sb->s_fs_info = NULL; | ||
320 | } | ||
319 | kill_litter_super(sb); | 321 | kill_litter_super(sb); |
320 | } | 322 | } |
321 | 323 | ||