summaryrefslogtreecommitdiff
path: root/fatfs/ChangeLog
blob: ef8787676d998c1cf8360e59168a32a91b421891 (plain)
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
2007-03-28  Thomas Schwinge  <tschwinge@gnu.org>

	* Makefile (fatfs.static): New target.

	* main.c (diskfs_readonly): Remove variable.
	(main): Set `diskfs_readonly' and `diskfs_hard_readonly' to one.

2005-07-12  Marcus Brinkmann  <marcus@gnu.org>

	* pager.c (diskfs_get_filemap): Initialize upi->max_prot to PROT.

2003-08-09  Marcus Brinkmann  <marcus@gnu.org>

	* fat.h: Include <byteswap.h>.
	(read_dword) [BYTE_ORDER == BIG_ENDIAN]: Use bswap_32 to swap bytes.
	(write_dword) [BYTE_ORDER == BIG_ENDIAN]: Likewise.
	(read_word) [BYTE_ORDER == BIG_ENDIAN]: Use bswap_16 to swap bytes.
	(write_word) [BYTE_ORDER == BIG_ENDIAN]: Likewise.

2003-08-03  Marco Gerards  <metgerards@student.han.nl>

	* fatfs.h (struct disknode): New member DIRNODE.
	* inode.c (read_node): Added assertion to be sure the directory
	can always be found.  Add directory dependancy to node by
	initializing DIRNODE and holding a reference.
	(diskfs_node_norefs): Release reference to DIRNODE.
	(write_node): Don't use diskfs_cached_lookup to lookup the
	directory, use DIRNODE instead and lock DP.  Don't use diskfs_nput,
	use mutex_unlock instead.
	(diskfs_alloc_node): Add directory dependancy to node by
	initializing DIRNODE and holding a reference.

2003-08-05  Marcus Brinkmann  <marcus@gnu.org>

	* fat.c (fat_read_sblock): Catch error from store_read.

2003-08-03  Marco Gerards  <metgerards@student.han.nl>

	* inode.c (read_node): Fix typo.

2003-08-01  Marco Gerards  <metgerards@student.han.nl>

	* node-create.c: New file.
	* Makefile (SRCS): Added node-created.c.
	* dir.c: Include <hurd/fsys.h>.
	(diskfs_direnter_hard): Initialize a new block with zeros. Enter
	direntry and setup the virtual	inode. Also handle directories
	correctly.
	(diskfs_rewrite_hard): Function rewritten.
	(diskfs_dirempty): Change logic to test if a file was deleted.
	* fat.c (fat_extend_chain): Unlock spin_lock when returning from
	function. Set dn->last to 0 when deallocating the complete
	file. Update dn->last when not deallocating the complete file. Set
	dn->first to zero when the complete file was deallocated. Also
	update dn->length_of_chain to the new amount of clusters in the
	chain.
	* main.c (diskfs_hard_readonly): Remove global variable.

2003-07-29  Jeff Bailey  <jbailey@nisa.net>

	* fatfs.h (LOG2_BLOCKS_PER_CLUSTER): Fix typo.

2003-07-17  Marcus Brinkmann  <marcus@gnu.org>

	* pager.c (find_cluster): Round to cluster size rather than adding
	cluster size.

2003-07-14  Marco Gerards  <metgerards@student.han.nl>

	* fat.c (fat_read_sblock): Don't test if the root dir size is a
	multiple of sectors_per_cluster.  Reported by Barry deFreese
	(bddebian@cox.net).

	* fatfs.h (LOG2_BLOCKS_PER_CLUSTER): New macro.
	(FAT_FIRST_CLUSTER_BLOCK): Likewise.
	(fat_first_cluster_byte): Macro removed.

	* inode.c (read_node): Correctly setup diskfs_root_node for FAT32
	filesystems.

	* pager.c (fat_getcluster): Check for reading beyond allocsize
	correctly for file systems with a clustersize > vm_page_size.
	(file_pager_read_small_page): Don't use byte offsets when
	calculating the block.
	(file_pager_read_huge_page): Likewise.
	(pending_clusters_write): Likewise.
	(file_pager_write_small_page): Likewise.
	(STAT_INC): Cast to void to suppress warning.

2003-04-26  Marco Gerards  <metgerards@student.han.nl>

	* dir.c (diskfs_get_directs): Consider ENTRY when adding
	"." and ".." for the rootnode.

	* inode.c (read_node): Use ifind instead of diskfs_cached_lookup
	and do not use diskfs_nput anymore.
	* main.c (diskfs_S_fsys_getfile): New function.

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.