[ 
https://issues.apache.org/jira/browse/HADOOP-6897?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12895311#action_12895311
 ] 

Hairong Kuang commented on HADOOP-6897:
---------------------------------------

Dick, you made a good observation. But my understanding of their semantics is a 
little different from yours.

I believe static boolean FileSystem.mkdirs(FileSystem fs, Path path, 
FsPermission permission) assigns masked permission to intermediate directories, 
if any, that get created, and assigns the given permission to the leaf 
directory.

On the other hand fs.mkdirs(path, permission) assign the masked permission to 
all newly created directories.

Another subtle difference is that if the directory already exists, static 
boolean FileSystem mkdirs would go ahead and change the directory's permission. 
But boolean fs.mkdirs would simply return true without changing its permission.

> FileSystem#mkdirs(FileSystem, Path, FsPermission) should not call 
> setPermission if mkdirs failled
> -------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-6897
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6897
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 0.22.0
>            Reporter: Hairong Kuang
>            Assignee: Hairong Kuang
>             Fix For: 0.22.0
>
>         Attachments: mkdirs.patch
>
>
> Here is the piece of code that has the bug. fs.setPermission should not be 
> called if result is false.
> {code}
>   public static boolean mkdirs(FileSystem fs, Path dir, FsPermission 
> permission)
>   throws IOException {
>     // create the directory using the default permission
>     boolean result = fs.mkdirs(dir);
>     // set its permission to be the supplied one
>     fs.setPermission(dir, permission);
>     return result;
>   }
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to