mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
ANDROID: sdcardfs: Add option to not link obb
Add mount option unshared_obb to not link the obb
folders of multiple users together.
Bug: 27915347
Test: mount with option. Check if altering one obb
alters the other
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Change-Id: I3956e06bd0a222b0bbb2768c9a8a8372ada85e1e
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
This commit is contained in:
committed by
Amit Pundir
parent
56bc7bac08
commit
93ca834507
@@ -360,7 +360,8 @@ int need_graft_path(struct dentry *dentry)
|
||||
struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dentry->d_sb);
|
||||
struct qstr obb = QSTR_LITERAL("obb");
|
||||
|
||||
if (parent_info->data->perm == PERM_ANDROID &&
|
||||
if (!sbi->options.unshared_obb &&
|
||||
parent_info->data->perm == PERM_ANDROID &&
|
||||
qstr_case_eq(&dentry->d_name, &obb)) {
|
||||
|
||||
/* /Android/obb is the base obbpath of DERIVED_UNIFIED */
|
||||
|
||||
@@ -35,6 +35,7 @@ enum {
|
||||
Opt_gid_derivation,
|
||||
Opt_default_normal,
|
||||
Opt_nocache,
|
||||
Opt_unshared_obb,
|
||||
Opt_err,
|
||||
};
|
||||
|
||||
@@ -48,6 +49,7 @@ static const match_table_t sdcardfs_tokens = {
|
||||
{Opt_multiuser, "multiuser"},
|
||||
{Opt_gid_derivation, "derive_gid"},
|
||||
{Opt_default_normal, "default_normal"},
|
||||
{Opt_unshared_obb, "unshared_obb"},
|
||||
{Opt_reserved_mb, "reserved_mb=%u"},
|
||||
{Opt_nocache, "nocache"},
|
||||
{Opt_err, NULL}
|
||||
@@ -134,6 +136,9 @@ static int parse_options(struct super_block *sb, char *options, int silent,
|
||||
case Opt_nocache:
|
||||
opts->nocache = true;
|
||||
break;
|
||||
case Opt_unshared_obb:
|
||||
opts->unshared_obb = true;
|
||||
break;
|
||||
/* unknown option */
|
||||
default:
|
||||
if (!silent)
|
||||
@@ -187,13 +192,16 @@ int parse_options_remount(struct super_block *sb, char *options, int silent,
|
||||
return 0;
|
||||
vfsopts->mask = option;
|
||||
break;
|
||||
case Opt_unshared_obb:
|
||||
case Opt_default_normal:
|
||||
case Opt_multiuser:
|
||||
case Opt_userid:
|
||||
case Opt_fsuid:
|
||||
case Opt_fsgid:
|
||||
case Opt_reserved_mb:
|
||||
pr_warn("Option \"%s\" can't be changed during remount\n", p);
|
||||
case Opt_gid_derivation:
|
||||
if (!silent)
|
||||
pr_warn("Option \"%s\" can't be changed during remount\n", p);
|
||||
break;
|
||||
/* unknown option */
|
||||
default:
|
||||
|
||||
@@ -197,6 +197,7 @@ struct sdcardfs_mount_options {
|
||||
bool multiuser;
|
||||
bool gid_derivation;
|
||||
bool default_normal;
|
||||
bool unshared_obb;
|
||||
unsigned int reserved_mb;
|
||||
bool nocache;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user