IP Library Granted Patent US 8,402,051
Granted Patent B2
US 8,402,051 · App. 12/349,372 · Granted Mar 19, 2013

Consumer share quota feature

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,402,051
App. No.
12/349,372
Granted
Mar 19, 2013
Kind
B2
Abstract

Disclosed herein is a system and method that that allows device administrators to set disk quotas for each share of a server. Quotas are set and enforced per share. The quota specifies the total disk space the share may consume on the device. When a share reaches or exceeds the set quota the share can no longer be written to.

Claims (44)

1. A system for implementing share-based quotas on a Unix-like file server comprising:

at least one processor;

a first file system comprising a share, the share comprising at least one shared folder or shared file, the share used by a plurality of users;

a quota module that, when executed by the at least one processor,

receives a size quota for the share,

monitors the size of the share, and

in response to a determination that the size of the share reaches or exceeds the size quota,

automatically creates a File-System-in-User-Space (FUSE) virtual file system, and

moves the share to the FUSE virtual file system; and

a virtual file system that

receives a request for at least a portion of the share,

if the share has not reached or exceeded the size quota, routes the request to the first file system, and,

if the share has reached or exceeded the size quota, routes the request to the FUSE virtual file system, wherein the FUSE virtual file system denies write requests that increase the size of the share and allows read requests to the share while the share is at or has exceeded the size quota.

2. The system according to claim 1 , wherein the quota module monitors the size of the share by calculating the share size at intervals.

3. The system according to claim 2 , wherein the size of the share is further based on share usage.

4. The system according to claim 1 , wherein the FUSE virtual file system allows requests for deletions to the share.

5. The system according to claim 1 , wherein the FUSE virtual file system allows requests to the share which result in freed space in the share.

6. The system according to claim 1 , wherein the Unix-like file server is a Linux file server.

7. The system according to claim 1 , wherein the quota module further:

notifies the plurality of users that the share is unavailable before moving the share to the FUSE virtual file system; and

notifies the plurality of users that the share is available after moving the share to the FUSE virtual file system.

8. A method for implementing share-based quotas on a Unix-like file server comprising:

determining a share on a first file system has reached or exceeded a size quota, the share comprising at least one shared folder or shared file, the share used by a plurality of users;

if the share has not reached or exceeded the size quota, routing one or more requests for at least a portion of the share to the first file system, and

in response to the determination that the share has reached or exceeded the size quota,

automatically creating a File-System-in-User-Space (FUSE) virtual file system,

moving the share to the FUSE virtual file system,

routing one or more requests for at least a portion of the share to the FUSE virtual file system, and

denying write requests that increase a size of the share and allowing read requests to the share while the share is at or has exceeded the size quota.

9. The method according to claim 8 , wherein the FUSE virtual file system is implemented by a FUSE device.

10. The method according to claim 8 , wherein the first file system is a real file system.

11. The method according to claim 8 , further comprising notifying the plurality of users that the share is unavailable when the share is being moved to the FUSE virtual file system.

12. The method according to claim 8 , further comprising notifying the plurality of users that the share is available after the share is moved to the FUSE virtual file system.

13. The method according to claim 8 , further comprising allowing requests for deletions to the share while the share is at or has exceeded the size quota.

14. The method according to claim 8 , further comprising allowing requests to the share, which result in freed space in the share, while the share is at or has exceeded the size quota.

15. A system for implementing share-based quotas on a Unix-like file server comprising:

means for determining a share on a first file system has reached or exceeded a size quota, the share comprising at least one shared folder or shared file, the share used by a plurality of users;

means for, in response to the determination that the share has reached or exceeded the size quota,

automatically creating a File-System-in-User-Space (FUSE) virtual file system, and

moving the share to the FUSE virtual file system; and

means for

receiving a request for at least a portion of the share,

if the share has not reached or exceeded the size quota, routing the request to the first file system, and,

if the share has reached or exceeded the size quota, routing the request to the FUSE virtual file system, wherein the FUSE virtual file system denies write requests that increase the size of the share and allows read requests to the share while the share is at or has exceeded the size quota.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2013
From: EMC CORPORATION
To: LENOVOEMC LIMITED
Reel/Frame 030868/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2010
From: IOMEGA CORPORATION
To: EMC CORPORATION
Reel/Frame 023950/0391 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2009
From: RYAN, MICHAEL; FRANK, JOSEPH; FOSTER, BRIAN; GRUTTADAURIA, BRIAN
To: EMC CORPORATION
Reel/Frame 022289/0876 →