Patent US6640233B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6640233B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Reserving file system blocks

Assignee: NetApp Inc
•
Filing: 2000-08-18
•
Granted: 2003-10-28
•
Expires: 2020-08-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system that manages a file system for a file server. A file operation is received that signals a reservation operation for a file having a file size. Preferably, the file system uses a write anywhere file system layout, the file operation that signals the reservation operation is a zero length write request, and the file operation that signals the reservation operation includes a parameter that specifies the file size. A number of blocks needed to be reserved to accommodate the file is computed. Preferably, computing the number of blocks needed to be reserved to accommodate the file includes determining a total number of direct and indirect blocks needed to accommodate the file size, and subtracting a total number of blocks already allocated for the file and a total number of cached unallocated blocks for the file from the total number of direct and indirect blocks needed to accommodate the file size. A number of unallocated blocks is reserved in the file system, with the number of reserved blocks equal to the number of blocks needed to be reserved to accommodate the file. Reserving the number of blocks preferably includes setting a flag in an inode for the file that indicates blocks have been reserved for the file, and incrementing a reserved block count in a file system information block by the number of blocks needed.

Inventors

  • 👤 Blake Lewis
  • 👤 Kayuri Patel
  • 👤 Ray Chen

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 12:33
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/0604; G06F3/0628; G06F3/0629; G06F3/0631; G06F3/0638; G06F3/064; G06F3/0655; G06F3/0656; G06F3/0668; G06F3/0671; G06F3/0673; G06F3/0674; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99951; Y10S707/99956

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 144 words
A method of managing a file system for a file server, comprising the steps of: receiving a file operation that signals a reservation operation for a file for which reservation has already been performed, said reservation operation specifying a new file size different from a current file size for the file; comparing the current file size with the new file size; in the case that the current file size exceeds the new file size, releasing any remaining block reservations for the file; and in the case that the new file size exceeds the current file size, reserving for later allocation in the file system an additional number of unallocated blocks equal to a difference between a total number of direct and indirect blocks required by the new file size and a total number of direct and indirect blocks required by the current file size.
Claim 2
Independent Claim 144 words
A method of managing a file system for a file server, comprising the steps of: receiving a file operation that signals a reservation operation for a file for which reservation has already been performed, said reservation operation specifying a new file size different from a current file size for the file; comparing the current file size with the new file size; in the case that the current file size exceeds the new file size, releasing any remaining block reservations for the file; and in the case that the new file size exceeds the current file size, reserving for later allocation in the file system an additional number of unallocated blocks equal to a difference between a total number of direct and indirect blocks required by the new file size and a total number of direct and indirect blocks required by the current file size.
Claim 3
Dependent Claim 18 words
A method as in claim 1 , wherein the file system uses a write anywhere file system layout.
Claim 4
Dependent Claim 22 words
A method as in claim 1 , wherein the file operation that signals the reservation operation is a zero length write request.
Claim 5
Dependent Claim 24 words
A method as in claim 1 , wherein the file operation that signals the reservation operation includes a parameter that specifies the file size.
Claim 6
Dependent Claim 81 words
A method as in claim 1 , wherein the step of releasing remaining block reservations for the file further comprises the steps of: resetting a flag in an inode for the file that indicates blocks have been reserved for the file; and decrementing a reserved block count in a file system information block by a number of blocks still reserved for the file, the reserved block count indicating how many unallocated blocks have been reserved for files in the file system.
Claim 7
Dependent Claim 54 words
A method as in claim 1 , further comprising the step of checking that a number of available blocks in the file system is greater than the additional number of unallocated blocks, wherein an error is returned in a case that the number of available blocks is less than the additional number of blocks.
Claim 8
Dependent Claim 57 words
A method as in claim 6 , wherein the number of available blocks in the file system is determined by subtracting a number of allocated blocks, a number of cached unallocated blocks, and a number of reserved blocks from a total number of blocks in the file system, and adding a number of reserved cached unallocated blocks.
Claim 9
Dependent Claim 53 words
A method as in claim 1 , further comprising the step of checking that the additional number of blocks does not exceed a remainder of a quota for an owner of the file, wherein an error is returned in a case that the additional number of blocks exceeds the remainder of the quota.
Claim 10
Dependent Claim 23 words
A method as in claim 1 , further comprising the step of releasing reservation of blocks as those blocks are written to storage.
Claim 11
Dependent Claim 55 words
A method as in claim 9 , wherein the step of releasing reservation of blocks further comprises the step of decrementing a reserved block count in a file system information block by a number of released blocks, the reserved block count indicating how many blocks total have been reserved for files in the file server.
Claim 12
Dependent Claim 182 words
A file server that manages a file system, comprising: mass storage that stores files for the file system; a processor that executes instructions to manage the file system; and a memory storing information including instructions, the instructions executable by the processor to manage the file system, the instructions comprising: (a) receiving a file operation that signals a reservation operation for a file for which reservation has already been performed, said reservation operation specifying a new file size different from a current file size for the file; (b) comparing the current file size with the new file size; (c) in the case that the current file size exceeds the new file size, releasing any remaining block reservations for the file; and (d) in the case that the new file size exceeds the current file size, reserving for later allocation in the file system an additional number of unallocated blocks equal to a difference between a total number of direct and indirect blocks required by the new file size and a total number of direct and indirect blocks required by the current file size.
Claim 13
Dependent Claim 182 words
A file server that manages a file system, comprising: mass storage that stores files for the file system; a processor that executes instructions to manage the file system; and a memory storing information including instructions, the instructions executable by the processor to manage the file system, the instructions comprising: (a) receiving a file operation that signals a reservation operation for a file for which reservation has already been performed, said reservation operation specifying a new file size different from a current file size for the file; (b) comparing the current file size with the new file size; (c) in the case that the current file size exceeds the new file size, releasing any remaining block reservations for the file; and (d) in the case that the new file size exceeds the current file size, reserving for later allocation in the file system an additional number of unallocated blocks equal to a difference between a total number of direct and indirect blocks required by the new file size and a total number of direct and indirect blocks required by the current file size.
Claim 14
Dependent Claim 19 words
A file server as in claim 11 , wherein the file system uses a write anywhere file system layout.
Claim 15
Dependent Claim 23 words
A file server as in claim 11 , wherein the file operation that signals the reservation operation is a zero length write request.
Claim 16
Dependent Claim 25 words
A file server as in claims 11 , wherein the file operation that signals the reservation operation includes a parameter that specifies the file size.
Claim 17
Dependent Claim 82 words
A file server as in claim 11 , wherein the step of releasing remaining block reservations for the file further comprises the steps of: resetting a flag in an inode for the file that indicates blocks have been reserved for the file; and decrementing a reserved block count in a file system information block by a number of blocks still reserved for the file, the reserved block count indicating how many unallocated blocks have been reserved for files in the file system.
Claim 18
Dependent Claim 59 words
A file server as in claim 11 , wherein the instructions further comprise the step of checking that a number of available blocks in the file system is greater than the additional number of unallocated blocks, and wherein an error is returned in a case that the number of available blocks is less than the additional number of blocks.
Claim 19
Dependent Claim 58 words
A file server as in claim 16 , wherein the number of available blocks in the file system is determined by subtracting a number of allocated blocks, a number of cached unallocated blocks, and a number of reserved blocks from a total number of blocks in the file system, and adding a number of reserved cached unallocated blocks.
Claim 20
Dependent Claim 58 words
A file server as in claim 11 , wherein the instructions further comprise the step of checking that the additional number of blocks does not exceed a remainder of a quota for an owner of the file, and wherein an error is returned in a case that the additional number of blocks exceeds the remainder of the quota.
Claim 21
Dependent Claim 27 words
A file server as in claim 11 , wherein the instructions further comprise the step of releasing reservation of blocks as those blocks are written to storage.
Claim 22
Dependent Claim 56 words
A file server as in claim 19 , wherein the step of releasing reservation of blocks further comprises the step of decrementing a reserved block count in a file system information block by a number of released blocks, the reserved block count indicating how many blocks total have been reserved for files in the file server.
Claim 23
Dependent Claim 152 words
A memory storing information including instructions, the instructions executable by a processor to manage a file system, the instructions comprising the steps of: receiving a file operation that signals a reservation operation for a file for which reservation has already been performed, said reservation operation specifying a new file size different from a current file size for the file; comparing the current file size with the new file size; in the case that the current file size exceeds the new file size, releasing any remaining block reservations for the file; and in the case that the new file size exceeds the current file size, reserving for later allocation in the file system an additional number of unallocated blocks equal to a difference between a total number of direct and indirect blocks required by the new file size and a total number of direct and indirect blocks required by the current file size.
Claim 24
Dependent Claim 152 words
A memory storing information including instructions, the instructions executable by a processor to manage a file system, the instructions comprising the steps of: receiving a file operation that signals a reservation operation for a file for which reservation has already been performed, said reservation operation specifying a new file size different from a current file size for the file; comparing the current file size with the new file size; in the case that the current file size exceeds the new file size, releasing any remaining block reservations for the file; and in the case that the new file size exceeds the current file size, reserving for later allocation in the file system an additional number of unallocated blocks equal to a difference between a total number of direct and indirect blocks required by the new file size and a total number of direct and indirect blocks required by the current file size.
Claim 25
Dependent Claim 18 words
A memory as in claim 21 , wherein the file system uses a write anywhere file system layout.
Claim 26
Dependent Claim 22 words
A memory as in claim 21 , wherein the file operation that signals the reservation operation is a zero length write request.
Claim 27
Dependent Claim 24 words
A memory as in claim 21 , wherein the file operation that signals the reservation operation includes a parameter that specifies the file size.
Claim 28
Dependent Claim 81 words
A memory as in claim 21 , wherein the step of releasing remaining block reservations for the file further comprises the steps of: resetting a flag in an inode for the file that indicates blocks have been reserved for the file; and decrementing a reserved block count in a file system information block by a number of blocks still reserved for the file, the reserved block count indicating how many unallocated blocks have been reserved for files in the file system.
Claim 29
Dependent Claim 58 words
A memory as in claim 21 , wherein the instructions farther comprise the step of checking that a number of available blocks in the file system is greater than the additional number of unallocated blocks, and wherein an error is returned in a case that the number of available blocks is less than the additional number of blocks.
Claim 30
Dependent Claim 57 words
A memory as in claim 26 , wherein the number of available blocks in the file system is determined by subtracting a number of allocated blocks, a number of cached unallocated blocks, and a number of reserved blocks from a total number of blocks in the file system, and adding a number of reserved cached unallocated blocks.
Claim 31
Dependent Claim 57 words
A memory as in claim 21 , wherein the instructions further comprise the step of checking that the additional number of blocks does not exceed a remainder of a quota for an owner of the file, and wherein an error is returned in a case that the additional number of blocks exceeds the remainder of the quota.
Claim 32
Dependent Claim 26 words
A memory as in claim 21 , wherein the instructions further comprise the step of releasing reservation of blocks as those blocks are written to storage.
Claim 33
Dependent Claim 55 words
A memory as in claim 29 , wherein the step of releasing reservation of blocks further comprises the step of decrementing a reserved block count in a file system information block by a number of released blocks, the reserved block count indicating how many blocks total have been reserved for files in the file server.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-10-27 2007-04-28 2007-10-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-10-27 2011-04-28 2011-10-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-10-27 2015-04-28 2015-10-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag