IP Library Granted Patent US 12,118,112
Granted Patent B2
US 12,118,112 · App. 18/107,194 · Granted Oct 15, 2024

Nested namespaces for selective content sharing

Inventors: Marcio von Muhlen (San Francisco, CA); Nils Milton Bunger (Stanford, CA); Emil Ibrishimov (Redwood City, CA); Tsahi Glik (Sunnyvale, CA); Greg Price (San Francisco, CA)
Assignee: Dropbox, Inc.
G06F21/6218G06F16/16G06F16/185H04L63/104G06F2221/2145H04L63/101
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 12,118,112
App. No.
18/107,194
Granted
Oct 15, 2024
Kind
B2
Abstract

Nested namespaces for selective content sharing.

Claims (64)

1. A computer-implemented method comprising:

receiving, by a content management system, a request from a user account to mount a first namespace to a particular path in a second namespace in the content management system, wherein the user account has access to the second namespace;

identifying, by the content management system, a first mount lock associated with the first namespace and a second mount lock associated with the second namespace, wherein the first mount lock and the second mount lock control access to corresponding namespaces with respect to mounting location changes;

determining, by the content management system, that a set of one or more constraints associated with the first mount lock and the second mount lock is satisfied; and

based on the set of one or more constraints being satisfied, mounting, by the content management system, the first namespace to the particular path in the second namespace.

2. The computer-implemented method of claim 1 , wherein the set of one or more constraints includes a constraint that the second namespace cannot be mounted to more than one path in a root namespace, or a child namespace thereof, for any user in a set of users allowed to access the second namespace.

3. The computer-implemented method of claim 1 , further comprising:

receiving a request from a particular user to perform a mounting operation involving the second namespace; and

enforcing at least one constraint by obtaining one or more mount locks for one or more affected namespaces, wherein the mounting operation fails if the one or more mount locks cannot be obtained.

4. The computer-implemented method of claim 1 , wherein the set of (Original) one or more constraints includes a constraint that the first namespace cannot be mounted to more than one path in a shared namespace, a root namespace, or a child namespace.

5. The computer-implemented method of claim 1 , wherein the first mount lock and the second mount lock have not been released, the computer-implemented method further comprising:

receiving a second request from the user account to perform a mounting operation for mounting a third namespace that is a child namespace of the first namespace to the second namespace;

attempting to obtain mount locks for the third namespace, the second namespace, and parent namespaces of the second namespace other than a root namespace; and

handling a failure to perform the mounting operation wherein the requested mounting operation is not performed based on the second mount lock not being released, wherein a different mount lock is not obtainable for the second namespace, and wherein a new set of constraints are not satisfied and the third namespace is not mounted to the second namespace.

6. The computer-implemented method of claim 1 , the computer-implemented method further comprising:

receiving a second request to perform a mounting operation;

determining there is a failure to perform the mounting operation; and

reporting the failure to one or more other components of the content management system or a client device associated with the user account.

7. The computer-implemented method of claim 1 , the computer-implemented method further comprising:

receiving a second request to perform a mounting operation;

determining there is a failure to perform the mounting operation; and

salvaging the mounting operation by automatically performing a default legal mounting operation, prompting the user account with one or more possible other legal mounting operations, or determining a compatible mounting operation that will resolve cause of failure and satisfy a respective set of constraints.

8. A system comprising:

one or more processors; and

a non-transitory computer-readable medium storing instructions that, when executed by the one or more processors, cause the one or more processors to:

receive a request from a user account to mount a first namespace to a particular path in a second namespace in a content management system, wherein the user account has access to the second namespace;

identify a first mount lock associated with the first namespace and a second mount lock associated with the second namespace, wherein the first mount lock and the second mount lock control access to corresponding namespaces with respect to mounting location changes;

determine that a set of one or more constraints associated with the first mount lock and the second mount lock is satisfied; and

based on the set of one or more constraints being satisfied, mount the first namespace to the particular path in the second namespace.

9. The system of claim 8 , wherein the set of one or more constraints includes a constraint that the second namespace cannot be mounted to more than one path in a root namespace, or a child namespace thereof, for any user in a set of users allowed to access the second namespace.

10. The system of claim 8 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to:

receive a request from a particular user to perform a mounting operation involving the second namespace; and

enforce at least one constraint by obtaining one or more mount locks for one or more affected namespaces, wherein the mounting operation fails if the one or more mount locks cannot be obtained.

11. The system of claim 8 , wherein the set of one or more constraints includes a constraint that the first namespace cannot be mounted to more than one path in a shared namespace, a root namespace, or a child namespace.

12. The system of claim 8 , wherein the first mount lock and the second mount lock have not been released, and wherein the instructions, when executed by the one or more processors, cause the one or more processors to:

receive a second request from the user account to perform a mounting operation for mounting a third namespace that is a child namespace of the first namespace to the second namespace;

attempt to obtain mount locks for the third namespace, the second namespace, and parent namespaces of the second namespace other than a root namespace; and

handle a failure to perform the mounting operation wherein the requested mounting operation is not performed based on the second mount lock not being released, wherein a different mount lock is not obtainable for the second namespace, and wherein a new set of constraints are not satisfied and the third namespace is not mounted to the second namespace.

13. The system of claim 8 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to:

receive a second request to perform a mounting operation;

determine there is a failure to perform the mounting operation; and

reporting the failure to one or more other components of the content management system or a client device associated with the user account.

14. The system of claim 8 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to:

receive a second request to perform a mounting operation;

determine there is a failure to perform the mounting operation; and

salvage the mounting operation by automatically performing a default legal mounting operation, prompting the user account with one or more possible other legal mounting operations, or determining a compatible mounting operation that will resolve cause of failure and satisfy a respective set of constraints.

15. A non-transitory computer-readable medium comprising instructions, the instructions, when executed by a computing system, cause the computing system to:

receive a request from a user account to mount a first namespace to a particular path in a second namespace in a content management system, wherein the user account has access to the second namespace;

identify a first mount lock associated with the first namespace and a second mount lock associated with the second namespace, wherein the first mount lock and the second mount lock control access to corresponding namespaces with respect to mounting location changes;

determine that a set of one or more constraints associated with the first mount lock and the second mount lock is satisfied; and

based on the set of one or more constraints being satisfied, mount the first namespace to the particular path in the second namespace.

16. The non-transitory computer-readable medium of claim 15 , wherein the set of one or more constraints includes a constraint that the second namespace cannot be mounted to more than one path in a root namespace, or a child namespace thereof, for any user in a set of users allowed to access the second namespace.

17. The non-transitory computer-readable medium of claim 15 , wherein the instructions, when executed by the computing system, cause the computing system to:

receive a request from a particular user to perform a mounting operation involving the second namespace; and

enforce at least one constraint by obtaining one or more mount locks for one or more affected namespaces, wherein the mounting operation fails if the one or more mount locks cannot be obtained.

18. The non-transitory computer-readable medium of claim 15 , wherein the set of one or more constraints includes a constraint that the first namespace cannot be mounted to more than one path in a shared namespace, a root namespace, or a child namespace.

19. The non-transitory computer-readable medium of claim 15 , wherein the first mount lock and the second mount lock have not been released, and wherein the instructions, when executed by the computing system, cause the computing system to:

receive a second request from the user account to perform a mounting operation for mounting a third namespace that is a child namespace of the first namespace to the second namespace;

attempt to obtain mount locks for the third namespace, the second namespace, and parent namespaces of the second namespace other than a root namespace; and

handle a failure to perform the mounting operation wherein the requested mounting operation is not performed based on the second mount lock not being released, wherein a different mount lock is not obtainable for the second namespace, and wherein a new set of constraints are not satisfied and the third namespace is not mounted to the second namespace.

20. The non-transitory computer-readable medium of claim 15 , wherein the instructions, when executed by the computing system, cause the computing system to:

receive a second request to perform a mounting operation;

determine there is a failure to perform the mounting operation; and

reporting the failure to one or more other components of the content management system or a client device associated with the user account.

Assignments (2)
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2023
From: VON MUHLEN, MARCIO; BUNGER, NILS MILTON; IBRISHIMOV, EMIL; GLIK, TSAHI; PRICE, GREG
To: DROPBOX, INC.
Reel/Frame 062628/0498 →
Continuity (5)
Continuation 16914341 · Jun 27, 2020
Continuation 15891296 · Feb 7, 2018
Continuation 14961067 · Dec 7, 2015
Provisional Application 62141577 · Apr 1, 2015
Related Publication 20230185946A1 · Jun 15, 2023