namei.c (10ce3cc919f50c2043b41ca968b43c26a3672600) namei.c (8de52778798fe39660a8d6b26f290e0c93202761)
1/*
2 * namei.c - NILFS pathname lookup operations.
3 *
4 * Copyright (C) 2005-2008 Nippon Telegraph and Telephone Corporation.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or

--- 179 unchanged lines hidden (view full) ---

188
189static int nilfs_link(struct dentry *old_dentry, struct inode *dir,
190 struct dentry *dentry)
191{
192 struct inode *inode = old_dentry->d_inode;
193 struct nilfs_transaction_info ti;
194 int err;
195
1/*
2 * namei.c - NILFS pathname lookup operations.
3 *
4 * Copyright (C) 2005-2008 Nippon Telegraph and Telephone Corporation.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or

--- 179 unchanged lines hidden (view full) ---

188
189static int nilfs_link(struct dentry *old_dentry, struct inode *dir,
190 struct dentry *dentry)
191{
192 struct inode *inode = old_dentry->d_inode;
193 struct nilfs_transaction_info ti;
194 int err;
195
196 if (inode->i_nlink >= NILFS_LINK_MAX)
197 return -EMLINK;
198
199 err = nilfs_transaction_begin(dir->i_sb, &ti, 1);
200 if (err)
201 return err;
202
203 inode->i_ctime = CURRENT_TIME;
204 inode_inc_link_count(inode);
205 ihold(inode);
206

--- 7 unchanged lines hidden (view full) ---

214}
215
216static int nilfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
217{
218 struct inode *inode;
219 struct nilfs_transaction_info ti;
220 int err;
221
196 err = nilfs_transaction_begin(dir->i_sb, &ti, 1);
197 if (err)
198 return err;
199
200 inode->i_ctime = CURRENT_TIME;
201 inode_inc_link_count(inode);
202 ihold(inode);
203

--- 7 unchanged lines hidden (view full) ---

211}
212
213static int nilfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
214{
215 struct inode *inode;
216 struct nilfs_transaction_info ti;
217 int err;
218
222 if (dir->i_nlink >= NILFS_LINK_MAX)
223 return -EMLINK;
224
225 err = nilfs_transaction_begin(dir->i_sb, &ti, 1);
226 if (err)
227 return err;
228
229 inc_nlink(dir);
230
231 inode = nilfs_new_inode(dir, S_IFDIR | mode);
232 err = PTR_ERR(inode);

--- 162 unchanged lines hidden (view full) ---

395 nilfs_set_link(new_dir, new_de, new_page, old_inode);
396 nilfs_mark_inode_dirty(new_dir);
397 new_inode->i_ctime = CURRENT_TIME;
398 if (dir_de)
399 drop_nlink(new_inode);
400 drop_nlink(new_inode);
401 nilfs_mark_inode_dirty(new_inode);
402 } else {
219 err = nilfs_transaction_begin(dir->i_sb, &ti, 1);
220 if (err)
221 return err;
222
223 inc_nlink(dir);
224
225 inode = nilfs_new_inode(dir, S_IFDIR | mode);
226 err = PTR_ERR(inode);

--- 162 unchanged lines hidden (view full) ---

389 nilfs_set_link(new_dir, new_de, new_page, old_inode);
390 nilfs_mark_inode_dirty(new_dir);
391 new_inode->i_ctime = CURRENT_TIME;
392 if (dir_de)
393 drop_nlink(new_inode);
394 drop_nlink(new_inode);
395 nilfs_mark_inode_dirty(new_inode);
396 } else {
403 if (dir_de) {
404 err = -EMLINK;
405 if (new_dir->i_nlink >= NILFS_LINK_MAX)
406 goto out_dir;
407 }
408 err = nilfs_add_link(new_dentry, old_inode);
409 if (err)
410 goto out_dir;
411 if (dir_de) {
412 inc_nlink(new_dir);
413 nilfs_mark_inode_dirty(new_dir);
414 }
415 }

--- 174 unchanged lines hidden ---
397 err = nilfs_add_link(new_dentry, old_inode);
398 if (err)
399 goto out_dir;
400 if (dir_de) {
401 inc_nlink(new_dir);
402 nilfs_mark_inode_dirty(new_dir);
403 }
404 }

--- 174 unchanged lines hidden ---