namei.c (6a797d2737838906f2ea0a31686e87c3151e21ca) | namei.c (e2b911c53584a92266943f3b7f2cdbc19c1a4e80) |
---|---|
1/* 2 * linux/fs/ext4/namei.c 3 * 4 * Copyright (C) 1992, 1993, 1994, 1995 5 * Remy Card (card@masi.ibp.fr) 6 * Laboratoire MASI - Institut Blaise Pascal 7 * Universite Pierre et Marie Curie (Paris VI) 8 * --- 2104 unchanged lines hidden (view full) --- 2113 goto out; 2114 } 2115 retval = add_dirent_to_buf(handle, &fname, dir, inode, 2116 NULL, bh); 2117 if (retval != -ENOSPC) 2118 goto out; 2119 2120 if (blocks == 1 && !dx_fallback && | 1/* 2 * linux/fs/ext4/namei.c 3 * 4 * Copyright (C) 1992, 1993, 1994, 1995 5 * Remy Card (card@masi.ibp.fr) 6 * Laboratoire MASI - Institut Blaise Pascal 7 * Universite Pierre et Marie Curie (Paris VI) 8 * --- 2104 unchanged lines hidden (view full) --- 2113 goto out; 2114 } 2115 retval = add_dirent_to_buf(handle, &fname, dir, inode, 2116 NULL, bh); 2117 if (retval != -ENOSPC) 2118 goto out; 2119 2120 if (blocks == 1 && !dx_fallback && |
2121 EXT4_HAS_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_DIR_INDEX)) { | 2121 ext4_has_feature_dir_index(sb)) { |
2122 retval = make_indexed_dir(handle, &fname, dentry, 2123 inode, bh); 2124 bh = NULL; /* make_indexed_dir releases bh */ 2125 goto out; 2126 } 2127 brelse(bh); 2128 } 2129 bh = ext4_append(handle, dir, &block); --- 253 unchanged lines hidden (view full) --- 2383 */ 2384static void ext4_inc_count(handle_t *handle, struct inode *inode) 2385{ 2386 inc_nlink(inode); 2387 if (is_dx(inode) && inode->i_nlink > 1) { 2388 /* limit is 16-bit i_links_count */ 2389 if (inode->i_nlink >= EXT4_LINK_MAX || inode->i_nlink == 2) { 2390 set_nlink(inode, 1); | 2122 retval = make_indexed_dir(handle, &fname, dentry, 2123 inode, bh); 2124 bh = NULL; /* make_indexed_dir releases bh */ 2125 goto out; 2126 } 2127 brelse(bh); 2128 } 2129 bh = ext4_append(handle, dir, &block); --- 253 unchanged lines hidden (view full) --- 2383 */ 2384static void ext4_inc_count(handle_t *handle, struct inode *inode) 2385{ 2386 inc_nlink(inode); 2387 if (is_dx(inode) && inode->i_nlink > 1) { 2388 /* limit is 16-bit i_links_count */ 2389 if (inode->i_nlink >= EXT4_LINK_MAX || inode->i_nlink == 2) { 2390 set_nlink(inode, 1); |
2391 EXT4_SET_RO_COMPAT_FEATURE(inode->i_sb, 2392 EXT4_FEATURE_RO_COMPAT_DIR_NLINK); | 2391 ext4_set_feature_dir_nlink(inode->i_sb); |
2393 } 2394 } 2395} 2396 2397/* 2398 * If a directory had nlink == 1, then we should let it be 1. This indicates 2399 * directory has >EXT4_LINK_MAX subdirs. 2400 */ --- 946 unchanged lines hidden (view full) --- 3347{ 3348 int retval; 3349 3350 BUFFER_TRACE(ent->bh, "get write access"); 3351 retval = ext4_journal_get_write_access(handle, ent->bh); 3352 if (retval) 3353 return retval; 3354 ent->de->inode = cpu_to_le32(ino); | 2392 } 2393 } 2394} 2395 2396/* 2397 * If a directory had nlink == 1, then we should let it be 1. This indicates 2398 * directory has >EXT4_LINK_MAX subdirs. 2399 */ --- 946 unchanged lines hidden (view full) --- 3346{ 3347 int retval; 3348 3349 BUFFER_TRACE(ent->bh, "get write access"); 3350 retval = ext4_journal_get_write_access(handle, ent->bh); 3351 if (retval) 3352 return retval; 3353 ent->de->inode = cpu_to_le32(ino); |
3355 if (EXT4_HAS_INCOMPAT_FEATURE(ent->dir->i_sb, 3356 EXT4_FEATURE_INCOMPAT_FILETYPE)) | 3354 if (ext4_has_feature_filetype(ent->dir->i_sb)) |
3357 ent->de->file_type = file_type; 3358 ent->dir->i_version++; 3359 ent->dir->i_ctime = ent->dir->i_mtime = 3360 ext4_current_time(ent->dir); 3361 ext4_mark_inode_dirty(handle, ent->dir); 3362 BUFFER_TRACE(ent->bh, "call ext4_handle_dirty_metadata"); 3363 if (!ent->inlined) { 3364 retval = ext4_handle_dirty_dirent_node(handle, --- 504 unchanged lines hidden --- | 3355 ent->de->file_type = file_type; 3356 ent->dir->i_version++; 3357 ent->dir->i_ctime = ent->dir->i_mtime = 3358 ext4_current_time(ent->dir); 3359 ext4_mark_inode_dirty(handle, ent->dir); 3360 BUFFER_TRACE(ent->bh, "call ext4_handle_dirty_metadata"); 3361 if (!ent->inlined) { 3362 retval = ext4_handle_dirty_dirent_node(handle, --- 504 unchanged lines hidden --- |