Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 84771
b: refs/heads/master
c: 9b7880e
h: refs/heads/master
i:
  84769: 45070d1
  84767: 7c37f75
v: v3
  • Loading branch information
Jan Kara authored and Linus Torvalds committed Feb 8, 2008
1 parent a9ab9e1 commit 19c0c91
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6d141c3ff6d74cc30cdbf26155842756ac16cf7f
refs/heads/master: 9b7880e7bb30e641037550888b5c22d94c77f254
1 change: 1 addition & 0 deletions trunk/Documentation/filesystems/isofs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Mount options unique to the isofs filesystem.
map=normal Map non-Rock Ridge filenames to lower case
map=acorn As map=normal but also apply Acorn extensions if present
mode=xxx Sets the permissions on files to xxx
dmode=xxx Sets the permissions on directories to xxx
nojoliet Ignore Joliet extensions if they are present.
norock Ignore Rock Ridge extensions if they are present.
hide Completely strip hidden files from the file system.
Expand Down
23 changes: 15 additions & 8 deletions trunk/fs/isofs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,8 @@ struct iso9660_options{
char nocompress;
unsigned char check;
unsigned int blocksize;
mode_t mode;
mode_t fmode;
mode_t dmode;
gid_t gid;
uid_t uid;
char *iocharset;
Expand Down Expand Up @@ -305,7 +306,7 @@ enum {
Opt_block, Opt_check_r, Opt_check_s, Opt_cruft, Opt_gid, Opt_ignore,
Opt_iocharset, Opt_map_a, Opt_map_n, Opt_map_o, Opt_mode, Opt_nojoliet,
Opt_norock, Opt_sb, Opt_session, Opt_uid, Opt_unhide, Opt_utf8, Opt_err,
Opt_nocompress, Opt_hide, Opt_showassoc,
Opt_nocompress, Opt_hide, Opt_showassoc, Opt_dmode,
};

static match_table_t tokens = {
Expand All @@ -332,6 +333,7 @@ static match_table_t tokens = {
{Opt_uid, "uid=%u"},
{Opt_gid, "gid=%u"},
{Opt_mode, "mode=%u"},
{Opt_dmode, "dmode=%u"},
{Opt_block, "block=%u"},
{Opt_ignore, "conv=binary"},
{Opt_ignore, "conv=b"},
Expand Down Expand Up @@ -359,7 +361,7 @@ static int parse_options(char *options, struct iso9660_options *popt)
popt->check = 'u'; /* unset */
popt->nocompress = 0;
popt->blocksize = 1024;
popt->mode = S_IRUGO | S_IXUGO; /*
popt->fmode = popt->dmode = S_IRUGO | S_IXUGO; /*
* r-x for all. The disc could
* be shared with DOS machines so
* virtually anything could be
Expand Down Expand Up @@ -451,7 +453,12 @@ static int parse_options(char *options, struct iso9660_options *popt)
case Opt_mode:
if (match_int(&args[0], &option))
return 0;
popt->mode = option;
popt->fmode = option;
break;
case Opt_dmode:
if (match_int(&args[0], &option))
return 0;
popt->dmode = option;
break;
case Opt_block:
if (match_int(&args[0], &option))
Expand Down Expand Up @@ -801,7 +808,8 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent)
* on the disk as suid, so we merely allow them to set the default
* permissions.
*/
sbi->s_mode = opt.mode & 0777;
sbi->s_fmode = opt.fmode & 0777;
sbi->s_dmode = opt.dmode & 0777;

/*
* Read the root inode, which _may_ result in changing
Expand Down Expand Up @@ -1248,7 +1256,7 @@ static int isofs_read_inode(struct inode *inode)
ei->i_file_format = isofs_file_normal;

if (de->flags[-high_sierra] & 2) {
inode->i_mode = S_IRUGO | S_IXUGO | S_IFDIR;
inode->i_mode = sbi->s_dmode | S_IFDIR;
inode->i_nlink = 1; /*
* Set to 1. We know there are 2, but
* the find utility tries to optimize
Expand All @@ -1258,9 +1266,8 @@ static int isofs_read_inode(struct inode *inode)
*/
} else {
/* Everybody gets to read the file. */
inode->i_mode = sbi->s_mode;
inode->i_mode = sbi->s_fmode | S_IFREG;
inode->i_nlink = 1;
inode->i_mode |= S_IFREG;
}
inode->i_uid = sbi->s_uid;
inode->i_gid = sbi->s_gid;
Expand Down
3 changes: 2 additions & 1 deletion trunk/fs/isofs/isofs.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ struct isofs_sb_info {
unsigned char s_hide;
unsigned char s_showassoc;

mode_t s_mode;
mode_t s_fmode;
mode_t s_dmode;
gid_t s_gid;
uid_t s_uid;
struct nls_table *s_nls_iocharset; /* Native language support table */
Expand Down

0 comments on commit 19c0c91

Please sign in to comment.