You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue: vfs: add d_prune dentry operation vfs: protect i_nlink filesystems: add set_nlink() filesystems: add missing nlink wrappers logfs: remove unnecessary nlink setting ocfs2: remove unnecessary nlink setting jfs: remove unnecessary nlink setting hypfs: remove unnecessary nlink setting vfs: ignore error on forced remount readlinkat: ensure we return ENOENT for the empty pathname for normal lookups vfs: fix dentry leak in simple_fill_super()
This commit is contained in:
+1
-1
@@ -948,7 +948,7 @@ fail_free_drop:
|
||||
fail_drop:
|
||||
dquot_drop(inode);
|
||||
inode->i_flags |= S_NOQUOTA;
|
||||
inode->i_nlink = 0;
|
||||
clear_nlink(inode);
|
||||
unlock_new_inode(inode);
|
||||
iput(inode);
|
||||
brelse(inode_bitmap_bh);
|
||||
|
||||
+1
-1
@@ -3791,7 +3791,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
|
||||
inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
|
||||
inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
|
||||
}
|
||||
inode->i_nlink = le16_to_cpu(raw_inode->i_links_count);
|
||||
set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
|
||||
|
||||
ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */
|
||||
ei->i_dir_start_lookup = 0;
|
||||
|
||||
+1
-1
@@ -481,7 +481,7 @@ int ext4_ext_migrate(struct inode *inode)
|
||||
* Set the i_nlink to zero so it will be deleted later
|
||||
* when we drop inode reference.
|
||||
*/
|
||||
tmp_inode->i_nlink = 0;
|
||||
clear_nlink(tmp_inode);
|
||||
|
||||
ext4_ext_tree_init(handle, tmp_inode);
|
||||
ext4_orphan_add(handle, tmp_inode);
|
||||
|
||||
+4
-4
@@ -1694,7 +1694,7 @@ static void ext4_inc_count(handle_t *handle, struct inode *inode)
|
||||
if (is_dx(inode) && inode->i_nlink > 1) {
|
||||
/* limit is 16-bit i_links_count */
|
||||
if (inode->i_nlink >= EXT4_LINK_MAX || inode->i_nlink == 2) {
|
||||
inode->i_nlink = 1;
|
||||
set_nlink(inode, 1);
|
||||
EXT4_SET_RO_COMPAT_FEATURE(inode->i_sb,
|
||||
EXT4_FEATURE_RO_COMPAT_DIR_NLINK);
|
||||
}
|
||||
@@ -1860,7 +1860,7 @@ retry:
|
||||
de->name_len = 2;
|
||||
strcpy(de->name, "..");
|
||||
ext4_set_de_type(dir->i_sb, de, S_IFDIR);
|
||||
inode->i_nlink = 2;
|
||||
set_nlink(inode, 2);
|
||||
BUFFER_TRACE(dir_block, "call ext4_handle_dirty_metadata");
|
||||
err = ext4_handle_dirty_metadata(handle, inode, dir_block);
|
||||
if (err)
|
||||
@@ -2213,7 +2213,7 @@ static int ext4_unlink(struct inode *dir, struct dentry *dentry)
|
||||
ext4_warning(inode->i_sb,
|
||||
"Deleting nonexistent file (%lu), %d",
|
||||
inode->i_ino, inode->i_nlink);
|
||||
inode->i_nlink = 1;
|
||||
set_nlink(inode, 1);
|
||||
}
|
||||
retval = ext4_delete_entry(handle, dir, de, bh);
|
||||
if (retval)
|
||||
@@ -2538,7 +2538,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||
if (new_inode) {
|
||||
/* checked empty_dir above, can't have another parent,
|
||||
* ext4_dec_count() won't work for many-linked dirs */
|
||||
new_inode->i_nlink = 0;
|
||||
clear_nlink(new_inode);
|
||||
} else {
|
||||
ext4_inc_count(handle, new_dir);
|
||||
ext4_update_dx_flag(new_dir);
|
||||
|
||||
Reference in New Issue
Block a user