2.4.36-stable kernel tree
Revision | a84feb810884e9d67c041821b31b9e71ac2b032c (tree) |
---|---|
Zeit | 2008-09-06 20:35:25 |
Autor | Gilbert Ashley Gilbert <amigo@ibib...> |
Commiter | Willy Tarreau |
udf: fix uid/gid permissions
This change made it into the 2.6 branch since 2.6.15 and fixes a problem
where the UDF code would change the ownership of files in a UDF filesystem
when they were different thatn the current user, when possible. Example: after
creating a CD using udf as a regular user, if you mounted the CD as root, the
udf code would reset the ownership of all the files on the cd, causing
unecessary write operations. I found this fix while working with an old patch
which adds packet-writing to the 2.4 kernel. This fix is from the original
author (or maintainer) of the udf code.
Note: this was fixed upstream in 4d6660eb3665f22d16aff466eb9d45df6102b254.
@@ -1363,9 +1363,13 @@ udf_update_inode(struct inode *inode, int do_sync) | ||
1363 | 1363 | |
1364 | 1364 | if (inode->i_uid != UDF_SB(inode->i_sb)->s_uid) |
1365 | 1365 | fe->uid = cpu_to_le32(inode->i_uid); |
1366 | + else | |
1367 | + fe->uid = cpu_to_le32(-1); | |
1366 | 1368 | |
1367 | 1369 | if (inode->i_gid != UDF_SB(inode->i_sb)->s_gid) |
1368 | 1370 | fe->gid = cpu_to_le32(inode->i_gid); |
1371 | + else | |
1372 | + fe->uid = cpu_to_le32(-1); | |
1369 | 1373 | |
1370 | 1374 | udfperms = ((inode->i_mode & S_IRWXO) ) | |
1371 | 1375 | ((inode->i_mode & S_IRWXG) << 2) | |