namei.c (a90714c150e3ce677c57a9dac3ab1ec342c75a95) | namei.c (13723d00e374c2a6d6ccb5af6de965e89c3e1b01) |
---|---|
1/* -*- mode: c; c-basic-offset: 8; -*- 2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * 4 * namei.c 5 * 6 * Create and rename file, directory, symlinks 7 * 8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. --- 347 unchanged lines hidden (view full) --- 356 if (S_ISDIR(mode)) { 357 status = ocfs2_fill_new_dir(osb, handle, dir, inode, 358 new_fe_bh, data_ac); 359 if (status < 0) { 360 mlog_errno(status); 361 goto leave; 362 } 363 | 1/* -*- mode: c; c-basic-offset: 8; -*- 2 * vim: noexpandtab sw=8 ts=8 sts=0: 3 * 4 * namei.c 5 * 6 * Create and rename file, directory, symlinks 7 * 8 * Copyright (C) 2002, 2004 Oracle. All rights reserved. --- 347 unchanged lines hidden (view full) --- 356 if (S_ISDIR(mode)) { 357 status = ocfs2_fill_new_dir(osb, handle, dir, inode, 358 new_fe_bh, data_ac); 359 if (status < 0) { 360 mlog_errno(status); 361 goto leave; 362 } 363 |
364 status = ocfs2_journal_access(handle, dir, parent_fe_bh, 365 OCFS2_JOURNAL_ACCESS_WRITE); | 364 status = ocfs2_journal_access_di(handle, dir, parent_fe_bh, 365 OCFS2_JOURNAL_ACCESS_WRITE); |
366 if (status < 0) { 367 mlog_errno(status); 368 goto leave; 369 } 370 le16_add_cpu(&dirfe->i_links_count, 1); 371 status = ocfs2_journal_dirty(handle, parent_fe_bh); 372 if (status < 0) { 373 mlog_errno(status); --- 114 unchanged lines hidden (view full) --- 488 *new_fe_bh = sb_getblk(osb->sb, fe_blkno); 489 if (!*new_fe_bh) { 490 status = -EIO; 491 mlog_errno(status); 492 goto leave; 493 } 494 ocfs2_set_new_buffer_uptodate(inode, *new_fe_bh); 495 | 366 if (status < 0) { 367 mlog_errno(status); 368 goto leave; 369 } 370 le16_add_cpu(&dirfe->i_links_count, 1); 371 status = ocfs2_journal_dirty(handle, parent_fe_bh); 372 if (status < 0) { 373 mlog_errno(status); --- 114 unchanged lines hidden (view full) --- 488 *new_fe_bh = sb_getblk(osb->sb, fe_blkno); 489 if (!*new_fe_bh) { 490 status = -EIO; 491 mlog_errno(status); 492 goto leave; 493 } 494 ocfs2_set_new_buffer_uptodate(inode, *new_fe_bh); 495 |
496 status = ocfs2_journal_access(handle, inode, *new_fe_bh, 497 OCFS2_JOURNAL_ACCESS_CREATE); | 496 status = ocfs2_journal_access_di(handle, inode, *new_fe_bh, 497 OCFS2_JOURNAL_ACCESS_CREATE); |
498 if (status < 0) { 499 mlog_errno(status); 500 goto leave; 501 } 502 503 fe = (struct ocfs2_dinode *) (*new_fe_bh)->b_data; 504 memset(fe, 0, osb->sb->s_blocksize); 505 --- 153 unchanged lines hidden (view full) --- 659 handle = ocfs2_start_trans(osb, ocfs2_link_credits(osb->sb)); 660 if (IS_ERR(handle)) { 661 err = PTR_ERR(handle); 662 handle = NULL; 663 mlog_errno(err); 664 goto out_unlock_inode; 665 } 666 | 498 if (status < 0) { 499 mlog_errno(status); 500 goto leave; 501 } 502 503 fe = (struct ocfs2_dinode *) (*new_fe_bh)->b_data; 504 memset(fe, 0, osb->sb->s_blocksize); 505 --- 153 unchanged lines hidden (view full) --- 659 handle = ocfs2_start_trans(osb, ocfs2_link_credits(osb->sb)); 660 if (IS_ERR(handle)) { 661 err = PTR_ERR(handle); 662 handle = NULL; 663 mlog_errno(err); 664 goto out_unlock_inode; 665 } 666 |
667 err = ocfs2_journal_access(handle, inode, fe_bh, 668 OCFS2_JOURNAL_ACCESS_WRITE); | 667 err = ocfs2_journal_access_di(handle, inode, fe_bh, 668 OCFS2_JOURNAL_ACCESS_WRITE); |
669 if (err < 0) { 670 mlog_errno(err); 671 goto out_commit; 672 } 673 674 inc_nlink(inode); 675 inode->i_ctime = CURRENT_TIME; 676 fe->i_links_count = cpu_to_le16(inode->i_nlink); --- 169 unchanged lines hidden (view full) --- 846 handle = ocfs2_start_trans(osb, ocfs2_unlink_credits(osb->sb)); 847 if (IS_ERR(handle)) { 848 status = PTR_ERR(handle); 849 handle = NULL; 850 mlog_errno(status); 851 goto leave; 852 } 853 | 669 if (err < 0) { 670 mlog_errno(err); 671 goto out_commit; 672 } 673 674 inc_nlink(inode); 675 inode->i_ctime = CURRENT_TIME; 676 fe->i_links_count = cpu_to_le16(inode->i_nlink); --- 169 unchanged lines hidden (view full) --- 846 handle = ocfs2_start_trans(osb, ocfs2_unlink_credits(osb->sb)); 847 if (IS_ERR(handle)) { 848 status = PTR_ERR(handle); 849 handle = NULL; 850 mlog_errno(status); 851 goto leave; 852 } 853 |
854 status = ocfs2_journal_access(handle, inode, fe_bh, 855 OCFS2_JOURNAL_ACCESS_WRITE); | 854 status = ocfs2_journal_access_di(handle, inode, fe_bh, 855 OCFS2_JOURNAL_ACCESS_WRITE); |
856 if (status < 0) { 857 mlog_errno(status); 858 goto leave; 859 } 860 861 fe = (struct ocfs2_dinode *) fe_bh->b_data; 862 863 if (inode_is_unlinkable(inode)) { --- 396 unchanged lines hidden (view full) --- 1260 if (new_de) { 1261 if (S_ISDIR(new_inode->i_mode)) { 1262 if (!ocfs2_empty_dir(new_inode) || 1263 new_inode->i_nlink != 2) { 1264 status = -ENOTEMPTY; 1265 goto bail; 1266 } 1267 } | 856 if (status < 0) { 857 mlog_errno(status); 858 goto leave; 859 } 860 861 fe = (struct ocfs2_dinode *) fe_bh->b_data; 862 863 if (inode_is_unlinkable(inode)) { --- 396 unchanged lines hidden (view full) --- 1260 if (new_de) { 1261 if (S_ISDIR(new_inode->i_mode)) { 1262 if (!ocfs2_empty_dir(new_inode) || 1263 new_inode->i_nlink != 2) { 1264 status = -ENOTEMPTY; 1265 goto bail; 1266 } 1267 } |
1268 status = ocfs2_journal_access(handle, new_inode, newfe_bh, 1269 OCFS2_JOURNAL_ACCESS_WRITE); | 1268 status = ocfs2_journal_access_di(handle, new_inode, newfe_bh, 1269 OCFS2_JOURNAL_ACCESS_WRITE); |
1270 if (status < 0) { 1271 mlog_errno(status); 1272 goto bail; 1273 } 1274 1275 if (S_ISDIR(new_inode->i_mode) || 1276 (newfe->i_links_count == cpu_to_le16(1))){ 1277 status = ocfs2_orphan_add(osb, handle, new_inode, --- 29 unchanged lines hidden (view full) --- 1307 status = ocfs2_add_entry(handle, new_dentry, old_inode, 1308 OCFS2_I(old_inode)->ip_blkno, 1309 new_dir_bh, insert_entry_bh); 1310 } 1311 1312 old_inode->i_ctime = CURRENT_TIME; 1313 mark_inode_dirty(old_inode); 1314 | 1270 if (status < 0) { 1271 mlog_errno(status); 1272 goto bail; 1273 } 1274 1275 if (S_ISDIR(new_inode->i_mode) || 1276 (newfe->i_links_count == cpu_to_le16(1))){ 1277 status = ocfs2_orphan_add(osb, handle, new_inode, --- 29 unchanged lines hidden (view full) --- 1307 status = ocfs2_add_entry(handle, new_dentry, old_inode, 1308 OCFS2_I(old_inode)->ip_blkno, 1309 new_dir_bh, insert_entry_bh); 1310 } 1311 1312 old_inode->i_ctime = CURRENT_TIME; 1313 mark_inode_dirty(old_inode); 1314 |
1315 status = ocfs2_journal_access(handle, old_inode, old_inode_bh, 1316 OCFS2_JOURNAL_ACCESS_WRITE); | 1315 status = ocfs2_journal_access_di(handle, old_inode, old_inode_bh, 1316 OCFS2_JOURNAL_ACCESS_WRITE); |
1317 if (status >= 0) { 1318 old_di = (struct ocfs2_dinode *) old_inode_bh->b_data; 1319 1320 old_di->i_ctime = cpu_to_le64(old_inode->i_ctime.tv_sec); 1321 old_di->i_ctime_nsec = cpu_to_le32(old_inode->i_ctime.tv_nsec); 1322 1323 status = ocfs2_journal_dirty(handle, old_inode_bh); 1324 if (status < 0) --- 59 unchanged lines hidden (view full) --- 1384 if (old_dir_nlink != old_dir->i_nlink) { 1385 if (!old_dir_bh) { 1386 mlog(ML_ERROR, "need to change nlink for old dir " 1387 "%llu from %d to %d but bh is NULL!\n", 1388 (unsigned long long)OCFS2_I(old_dir)->ip_blkno, 1389 (int)old_dir_nlink, old_dir->i_nlink); 1390 } else { 1391 struct ocfs2_dinode *fe; | 1317 if (status >= 0) { 1318 old_di = (struct ocfs2_dinode *) old_inode_bh->b_data; 1319 1320 old_di->i_ctime = cpu_to_le64(old_inode->i_ctime.tv_sec); 1321 old_di->i_ctime_nsec = cpu_to_le32(old_inode->i_ctime.tv_nsec); 1322 1323 status = ocfs2_journal_dirty(handle, old_inode_bh); 1324 if (status < 0) --- 59 unchanged lines hidden (view full) --- 1384 if (old_dir_nlink != old_dir->i_nlink) { 1385 if (!old_dir_bh) { 1386 mlog(ML_ERROR, "need to change nlink for old dir " 1387 "%llu from %d to %d but bh is NULL!\n", 1388 (unsigned long long)OCFS2_I(old_dir)->ip_blkno, 1389 (int)old_dir_nlink, old_dir->i_nlink); 1390 } else { 1391 struct ocfs2_dinode *fe; |
1392 status = ocfs2_journal_access(handle, old_dir, 1393 old_dir_bh, 1394 OCFS2_JOURNAL_ACCESS_WRITE); | 1392 status = ocfs2_journal_access_di(handle, old_dir, 1393 old_dir_bh, 1394 OCFS2_JOURNAL_ACCESS_WRITE); |
1395 fe = (struct ocfs2_dinode *) old_dir_bh->b_data; 1396 fe->i_links_count = cpu_to_le16(old_dir->i_nlink); 1397 status = ocfs2_journal_dirty(handle, old_dir_bh); 1398 } 1399 } 1400 1401 ocfs2_dentry_move(old_dentry, new_dentry, old_dir, new_dir); 1402 status = 0; --- 490 unchanged lines hidden (view full) --- 1893 mlog_entry("(inode->i_ino = %lu)\n", inode->i_ino); 1894 1895 status = ocfs2_read_inode_block(orphan_dir_inode, &orphan_dir_bh); 1896 if (status < 0) { 1897 mlog_errno(status); 1898 goto leave; 1899 } 1900 | 1395 fe = (struct ocfs2_dinode *) old_dir_bh->b_data; 1396 fe->i_links_count = cpu_to_le16(old_dir->i_nlink); 1397 status = ocfs2_journal_dirty(handle, old_dir_bh); 1398 } 1399 } 1400 1401 ocfs2_dentry_move(old_dentry, new_dentry, old_dir, new_dir); 1402 status = 0; --- 490 unchanged lines hidden (view full) --- 1893 mlog_entry("(inode->i_ino = %lu)\n", inode->i_ino); 1894 1895 status = ocfs2_read_inode_block(orphan_dir_inode, &orphan_dir_bh); 1896 if (status < 0) { 1897 mlog_errno(status); 1898 goto leave; 1899 } 1900 |
1901 status = ocfs2_journal_access(handle, orphan_dir_inode, orphan_dir_bh, 1902 OCFS2_JOURNAL_ACCESS_WRITE); | 1901 status = ocfs2_journal_access_di(handle, orphan_dir_inode, orphan_dir_bh, 1902 OCFS2_JOURNAL_ACCESS_WRITE); |
1903 if (status < 0) { 1904 mlog_errno(status); 1905 goto leave; 1906 } 1907 1908 /* we're a cluster, and nlink can change on disk from 1909 * underneath us... */ 1910 orphan_fe = (struct ocfs2_dinode *) orphan_dir_bh->b_data; --- 70 unchanged lines hidden (view full) --- 1981 /* remove it from the orphan directory */ 1982 status = ocfs2_delete_entry(handle, orphan_dir_inode, target_de, 1983 target_de_bh); 1984 if (status < 0) { 1985 mlog_errno(status); 1986 goto leave; 1987 } 1988 | 1903 if (status < 0) { 1904 mlog_errno(status); 1905 goto leave; 1906 } 1907 1908 /* we're a cluster, and nlink can change on disk from 1909 * underneath us... */ 1910 orphan_fe = (struct ocfs2_dinode *) orphan_dir_bh->b_data; --- 70 unchanged lines hidden (view full) --- 1981 /* remove it from the orphan directory */ 1982 status = ocfs2_delete_entry(handle, orphan_dir_inode, target_de, 1983 target_de_bh); 1984 if (status < 0) { 1985 mlog_errno(status); 1986 goto leave; 1987 } 1988 |
1989 status = ocfs2_journal_access(handle,orphan_dir_inode, orphan_dir_bh, 1990 OCFS2_JOURNAL_ACCESS_WRITE); | 1989 status = ocfs2_journal_access_di(handle,orphan_dir_inode, orphan_dir_bh, 1990 OCFS2_JOURNAL_ACCESS_WRITE); |
1991 if (status < 0) { 1992 mlog_errno(status); 1993 goto leave; 1994 } 1995 1996 /* do the i_nlink dance! :) */ 1997 orphan_fe = (struct ocfs2_dinode *) orphan_dir_bh->b_data; 1998 if (S_ISDIR(inode->i_mode)) --- 34 unchanged lines hidden --- | 1991 if (status < 0) { 1992 mlog_errno(status); 1993 goto leave; 1994 } 1995 1996 /* do the i_nlink dance! :) */ 1997 orphan_fe = (struct ocfs2_dinode *) orphan_dir_bh->b_data; 1998 if (S_ISDIR(inode->i_mode)) --- 34 unchanged lines hidden --- |