diff options
author | Jan Kara <jack@suse.cz> | 2019-08-29 08:19:30 -0400 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2019-09-04 12:19:43 -0400 |
commit | 8b47ea6c21cbf169c4c41ad6de1ac12fba5ddd8e (patch) | |
tree | 30e63b1b18d3c3970b58f3024ba0e04c128a3b6e | |
parent | 2dee5aac05565933c5bf6ad4acd4f9bcd6ea2ff7 (diff) |
udf: Drop forward function declarations
Move some functions to make forward declarations unnecessary.
Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r-- | fs/udf/super.c | 102 |
1 files changed, 49 insertions, 53 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c index 9e72a9e98ab3..7ab29124961c 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
@@ -92,10 +92,6 @@ static void udf_put_super(struct super_block *); | |||
92 | static int udf_sync_fs(struct super_block *, int); | 92 | static int udf_sync_fs(struct super_block *, int); |
93 | static int udf_remount_fs(struct super_block *, int *, char *); | 93 | static int udf_remount_fs(struct super_block *, int *, char *); |
94 | static void udf_load_logicalvolint(struct super_block *, struct kernel_extent_ad); | 94 | static void udf_load_logicalvolint(struct super_block *, struct kernel_extent_ad); |
95 | static int udf_find_fileset(struct super_block *, struct kernel_lb_addr *, | ||
96 | struct kernel_lb_addr *); | ||
97 | static int udf_load_fileset(struct super_block *, struct fileSetDesc *, | ||
98 | struct kernel_lb_addr *); | ||
99 | static void udf_open_lvid(struct super_block *); | 95 | static void udf_open_lvid(struct super_block *); |
100 | static void udf_close_lvid(struct super_block *); | 96 | static void udf_close_lvid(struct super_block *); |
101 | static unsigned int udf_count_free(struct super_block *); | 97 | static unsigned int udf_count_free(struct super_block *); |
@@ -769,6 +765,55 @@ static int udf_check_vsd(struct super_block *sb) | |||
769 | return 0; | 765 | return 0; |
770 | } | 766 | } |
771 | 767 | ||
768 | static int udf_verify_domain_identifier(struct super_block *sb, | ||
769 | struct regid *ident, char *dname) | ||
770 | { | ||
771 | struct domainEntityIDSuffix *suffix; | ||
772 | |||
773 | if (memcmp(ident->ident, UDF_ID_COMPLIANT, strlen(UDF_ID_COMPLIANT))) { | ||
774 | udf_warn(sb, "Not OSTA UDF compliant %s descriptor.\n", dname); | ||
775 | goto force_ro; | ||
776 | } | ||
777 | if (ident->flags & (1 << ENTITYID_FLAGS_DIRTY)) { | ||
778 | udf_warn(sb, "Possibly not OSTA UDF compliant %s descriptor.\n", | ||
779 | dname); | ||
780 | goto force_ro; | ||
781 | } | ||
782 | suffix = (struct domainEntityIDSuffix *)ident->identSuffix; | ||
783 | if (suffix->flags & (1 << ENTITYIDSUFFIX_FLAGS_HARDWRITEPROTECT) || | ||
784 | suffix->flags & (1 << ENTITYIDSUFFIX_FLAGS_SOFTWRITEPROTECT)) { | ||
785 | if (!sb_rdonly(sb)) { | ||
786 | udf_warn(sb, "Descriptor for %s marked write protected." | ||
787 | " Forcing read only mount.\n", dname); | ||
788 | } | ||
789 | goto force_ro; | ||
790 | } | ||
791 | return 0; | ||
792 | |||
793 | force_ro: | ||
794 | if (!sb_rdonly(sb)) | ||
795 | return -EACCES; | ||
796 | UDF_SET_FLAG(sb, UDF_FLAG_RW_INCOMPAT); | ||
797 | return 0; | ||
798 | } | ||
799 | |||
800 | static int udf_load_fileset(struct super_block *sb, struct fileSetDesc *fset, | ||
801 | struct kernel_lb_addr *root) | ||
802 | { | ||
803 | int ret; | ||
804 | |||
805 | ret = udf_verify_domain_identifier(sb, &fset->domainIdent, "file set"); | ||
806 | if (ret < 0) | ||
807 | return ret; | ||
808 | |||
809 | *root = lelb_to_cpu(fset->rootDirectoryICB.extLocation); | ||
810 | UDF_SB(sb)->s_serial_number = le16_to_cpu(fset->descTag.tagSerialNum); | ||
811 | |||
812 | udf_debug("Rootdir at block=%u, partition=%u\n", | ||
813 | root->logicalBlockNum, root->partitionReferenceNum); | ||
814 | return 0; | ||
815 | } | ||
816 | |||
772 | static int udf_find_fileset(struct super_block *sb, | 817 | static int udf_find_fileset(struct super_block *sb, |
773 | struct kernel_lb_addr *fileset, | 818 | struct kernel_lb_addr *fileset, |
774 | struct kernel_lb_addr *root) | 819 | struct kernel_lb_addr *root) |
@@ -951,55 +996,6 @@ static int udf_load_metadata_files(struct super_block *sb, int partition, | |||
951 | return 0; | 996 | return 0; |
952 | } | 997 | } |
953 | 998 | ||
954 | static int udf_verify_domain_identifier(struct super_block *sb, | ||
955 | struct regid *ident, char *dname) | ||
956 | { | ||
957 | struct domainEntityIDSuffix *suffix; | ||
958 | |||
959 | if (memcmp(ident->ident, UDF_ID_COMPLIANT, strlen(UDF_ID_COMPLIANT))) { | ||
960 | udf_warn(sb, "Not OSTA UDF compliant %s descriptor.\n", dname); | ||
961 | goto force_ro; | ||
962 | } | ||
963 | if (ident->flags & (1 << ENTITYID_FLAGS_DIRTY)) { | ||
964 | udf_warn(sb, "Possibly not OSTA UDF compliant %s descriptor.\n", | ||
965 | dname); | ||
966 | goto force_ro; | ||
967 | } | ||
968 | suffix = (struct domainEntityIDSuffix *)ident->identSuffix; | ||
969 | if (suffix->flags & (1 << ENTITYIDSUFFIX_FLAGS_HARDWRITEPROTECT) || | ||
970 | suffix->flags & (1 << ENTITYIDSUFFIX_FLAGS_SOFTWRITEPROTECT)) { | ||
971 | if (!sb_rdonly(sb)) { | ||
972 | udf_warn(sb, "Descriptor for %s marked write protected." | ||
973 | " Forcing read only mount.\n", dname); | ||
974 | } | ||
975 | goto force_ro; | ||
976 | } | ||
977 | return 0; | ||
978 | |||
979 | force_ro: | ||
980 | if (!sb_rdonly(sb)) | ||
981 | return -EACCES; | ||
982 | UDF_SET_FLAG(sb, UDF_FLAG_RW_INCOMPAT); | ||
983 | return 0; | ||
984 | } | ||
985 | |||
986 | static int udf_load_fileset(struct super_block *sb, struct fileSetDesc *fset, | ||
987 | struct kernel_lb_addr *root) | ||
988 | { | ||
989 | int ret; | ||
990 | |||
991 | ret = udf_verify_domain_identifier(sb, &fset->domainIdent, "file set"); | ||
992 | if (ret < 0) | ||
993 | return ret; | ||
994 | |||
995 | *root = lelb_to_cpu(fset->rootDirectoryICB.extLocation); | ||
996 | UDF_SB(sb)->s_serial_number = le16_to_cpu(fset->descTag.tagSerialNum); | ||
997 | |||
998 | udf_debug("Rootdir at block=%u, partition=%u\n", | ||
999 | root->logicalBlockNum, root->partitionReferenceNum); | ||
1000 | return 0; | ||
1001 | } | ||
1002 | |||
1003 | int udf_compute_nr_groups(struct super_block *sb, u32 partition) | 999 | int udf_compute_nr_groups(struct super_block *sb, u32 partition) |
1004 | { | 1000 | { |
1005 | struct udf_part_map *map = &UDF_SB(sb)->s_partmaps[partition]; | 1001 | struct udf_part_map *map = &UDF_SB(sb)->s_partmaps[partition]; |