1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
2002-10-06 Marcus Brinkmann <marcus@gnu.org>
* main.c (diskfs_server_version): Set to HURD_VERSION.
* dir.c (dirscanblock): Always emulate "." and ".." for the root
dir, even on FAT32.
(diskfs_get_directs): Likewise. New variable DOTDOT. Set EP to
DOT or DOTDOT when approriate. Implement inode number generation
with vi_rlookup.
Submitted by Marco Gerards <mg@friaco.nl>.
* main.c (fetch_root): Implement this for FAT32.
Submitted by Marco Gerards <mg@friaco.nl>.
* fatfs.h: Renamed prototype from fat_next_cluster to
fat_get_next_cluster.
* fat.c (fat_extend_chain): Replace CLUSTERS_PER_CHAIN with
CLUSTERS_PER_TABLE and LOG2_CLUSTERS_PER_CHAIN with
LOG2_CLUSTERS_PER_TABLE.
(fat_getcluster): Likewise.
(fat_truncate_node): Likewise.
Submitted by Marco Gerards <mg@friaco.nl>.
* fat.c (fat_get_freespace): New function.
* fat.h: New prototype for fat_get_freespace.
* inode.c (diskfs_set_statfs): Set ST->f_bfree and ST->f_bavail.
Submitted by Marco Gerards <mg@friaco.nl>.
* fatfs.h: New prototypes for fs_uid and fs_gid.
New prototype for refresh_node_stats.
* inode.c (read_node): Set ST->st_uid to fs_uid and ST->st_gid to
fs_gid.
(refresh_node_stats): New function.
* main.c: New variables default_fs_uid, default_fs_gid, fs_uid, fs_gid.
Include <argz.h>
(options): New variable.
(startup_children): Likewise.
(startup_argp): Likewise.
(runtime_children): Likewise.
(runtime_argp): Likewise.
(diskfs_runtime_argp): Likewise.
(parse_opt): New function.
(main): Set default_fs_uid, default_fs_gid, fs_uid and fs_gid.
Pass startup_argp to diskfs_init_main.
Submitted by Marco Gerards <mg@friaco.nl>.
* main.c (read_sblock): Move to ...
* fat.c (read_sblock): ... here and rename to fat_read_sblock. New
variable READ. Don't use disk_image but access store directly.
(fat_read_sblock): Remove check for large clusters.
* fat.c: Include <time.h>
Submitted by Marco Gerards <mg@friaco.nl>.
* fatfs.h (struct user_pager_info): Rename DISK in enum pager_type
to FAT.
(disk_image): Rename to fat_image and make extern.
(host_name, mounted_on): Remove cruft.
(sblock, dr_root_node): Make extern.
* pager.c (create_disk_pager): Rename to create_fat_pager. Create
the pager with the type FAT and size of the FAT, not the whole
disk. Use fat_image instead disk_image.
(pager_read_page): Replace DISK with FAT and call
fat_pager_read_page instead disk_pager_read_page.
(pager_write_page): Replace DISK with FAT and call
fat_pager_write_page instead disk_pager_write_page.
(pager_report_extent): Replace DISK with FAT and return new size.
(disk_pager_read_page): Rename to fat_pager_read_page. Adjusted
to restrict to new size. Use memset instead bcopy. dev_end
renamed to fat_end. Add beginning of FAT to page.
(disk_pager_write_page): Rename to fat_pager_write_page. Adjusted
to restrict to new size. dev_end renamed to fat_end. Add
beginning to FAT to PAGE.
(file_pager_read_huge_page): Use memcpy instead bcopy.
(pending_clusters_write): Likewise.
* fat.c (fat_write_next_cluster): Don't add the beginning of FAT
to FAT_ENTRY_OFFSET. Reflect renaming of disk_image to fat_image.
(fat_get_next_cluster): Likewise.
* main.c (main): Call fat_read_sblock, not read_block. Call
create_fat_pager instead create_disk_pager, and do this only after
reading the superblock.
* main.c (fetch_root): Use memset, not bzero.
(read_sblock): Use memcpy, not bcopy.
* dir.c (diskfs_get_directs): Replace bcopy with memcpy.
2002-04-15 Marcus Brinkmann <marcus@gnu.org>
* dir.c (diskfs_get_directs): Count the special cased DOT and
DOTDOT directories for root directory nodes in FAT12 and FAT16
file systems.
* dir.c (dirscanblock): Determine the parent inode correctly.
Submitted by Marco Gerards <mg@friaco.nl>.
* inode.c (read_node): Add VK.dir_offset to BUF before doing the
pointer conversion.
(write_node): Likewise.
Submitted by Marco Gerards <mg@friaco.nl>.
* inode.c (write_node): Save the modification time as write time.
Submitted by Marco Gerards <mg@friaco.nl>.
* fat.h: Add prototype for fat_from_epoch().
Submitted by Marco Gerards <mg@friaco.nl>.
* inode.c (read_node): For the root dir of a FAT12/16 file system,
set allocsize to size of the root directory region.
(read_node): For files, round up to a full cluster multiple.
Reported by Marco Gerards <mg@friaco.nl>.
2000-05-05 Marcus Brinkmann <marcus@gnu.org>
* Initial release.
|