Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs

Pull reiserfs fixes from Jan Kara:
"Three reiserfs fixes. They fix real problems spotted by users so I
hope they are ok even at this stage."

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
reiserfs: fix deadlock with nfs racing on create/lookup
reiserfs: fix problems with chowning setuid file w/ xattrs
reiserfs: fix spurious multiple-fill in reiserfs_readdir_dentry

+25 -3
+2
fs/reiserfs/dir.c
··· 204 204 next_pos = deh_offset(deh) + 1; 205 205 206 206 if (item_moved(&tmp_ih, &path_to_entry)) { 207 + set_cpu_key_k_offset(&pos_key, 208 + next_pos); 207 209 goto research; 208 210 } 209 211 } /* for */
+7 -2
fs/reiserfs/inode.c
··· 1811 1811 TYPE_STAT_DATA, SD_SIZE, MAX_US_INT); 1812 1812 memcpy(INODE_PKEY(inode), &(ih.ih_key), KEY_SIZE); 1813 1813 args.dirid = le32_to_cpu(ih.ih_key.k_dir_id); 1814 - if (insert_inode_locked4(inode, args.objectid, 1815 - reiserfs_find_actor, &args) < 0) { 1814 + 1815 + reiserfs_write_unlock(inode->i_sb); 1816 + err = insert_inode_locked4(inode, args.objectid, 1817 + reiserfs_find_actor, &args); 1818 + reiserfs_write_lock(inode->i_sb); 1819 + if (err) { 1816 1820 err = -EINVAL; 1817 1821 goto out_bad_inode; 1818 1822 } 1823 + 1819 1824 if (old_format_only(sb)) 1820 1825 /* not a perfect generation count, as object ids can be reused, but 1821 1826 ** this is as good as reiserfs can do right now.
+13 -1
fs/reiserfs/xattr.c
··· 318 318 static int chown_one_xattr(struct dentry *dentry, void *data) 319 319 { 320 320 struct iattr *attrs = data; 321 - return reiserfs_setattr(dentry, attrs); 321 + int ia_valid = attrs->ia_valid; 322 + int err; 323 + 324 + /* 325 + * We only want the ownership bits. Otherwise, we'll do 326 + * things like change a directory to a regular file if 327 + * ATTR_MODE is set. 328 + */ 329 + attrs->ia_valid &= (ATTR_UID|ATTR_GID); 330 + err = reiserfs_setattr(dentry, attrs); 331 + attrs->ia_valid = ia_valid; 332 + 333 + return err; 322 334 } 323 335 324 336 /* No i_mutex, but the inode is unconnected. */
+3
fs/reiserfs/xattr_acl.c
··· 443 443 int depth; 444 444 int error; 445 445 446 + if (IS_PRIVATE(inode)) 447 + return 0; 448 + 446 449 if (S_ISLNK(inode->i_mode)) 447 450 return -EOPNOTSUPP; 448 451