Patent ID: 9696919
Date: 2017-07-04
CPC Classifications: G06F

Claim:
1. A method of managing data storage in a file system that supports block sharing, the method comprising: in response to receiving a request to write data to a file, (i) allocating a data block from an address within an address space of the file system, (ii) providing a first BPS (Block Pointer Set) including a first block pointer, the first block pointer storing the address of the data block and having a source/copy attribute that identifies the first block pointer as a source-block pointer, (iii) writing the data to the data block, and (iv) setting a reference count for the data block to indicate a single reference; and in response to receiving a request to create a logical copy of the data, (i) providing a second BPS including a second block pointer, the second block pointer storing the address of the data block and having a source/copy attribute that identifies the second block pointer as a copy-block pointer, and (ii) updating file system metadata to establish a sharing relationship between the first BPS and the second BPS, wherein creating the logical copy of the data does not accompany a change in the reference count for the data block, the reference count for the data block reflecting a number of source-block pointers that point to the data block and being independent of a number of copy-block pointers that point to the data block.