# US 12,118,112 B2 · Nested namespaces for selective content sharing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,112 B2
- Document ID: US12118112B2
- Status: Granted
- Kind: B2
- Application number: 18/107,194
- Filed: 2023-02-08
- Published: 2023-06-15
- Granted: 2024-10-15
- Earliest claimed: 2015-04-01
- Assignees: Dropbox, Inc.
- Applicants: Dropbox, Inc.
- Inventors: Marcio von Muhlen; Nils Milton Bunger; Emil Ibrishimov; Tsahi Glik; Greg Price
- Web page: https://patentgrep.com/patent/US12118112B2

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 16/16: File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F 16/185: Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof (details of archiving G06F16/11)
- H04L 63/104: {Grouping of entities}
- G06F 2221/2145: Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
- H04L 63/101: {Access control lists [ACL]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Nested namespaces for selective content sharing.

## Claims

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 8)

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.

### Claim 11 (depends on 8)

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.

### Claim 12 (depends on 8)

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.

### Claim 13 (depends on 8)

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.

### Claim 14 (depends on 8)

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.

### Claim 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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 15)

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.

### Claim 18 (depends on 15)

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.

### Claim 19 (depends on 15)

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.

### Claim 20 (depends on 15)

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.
