X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=fs%2Fufs%2Fnamei.c;h=a059ccd064eaa317f257ac1ac73ec3a28ba9867e;hb=7baca6ad0ef09c8a78d798c93a3ce25336e8f50f;hp=abd5f23a426d5918f0bbe5b41ce4f6600a63d19f;hpb=2a2ed2db353d949c06b6ef8b6913f65b39111eab;p=powerpc.git diff --git a/fs/ufs/namei.c b/fs/ufs/namei.c index abd5f23a42..a059ccd064 100644 --- a/fs/ufs/namei.c +++ b/fs/ufs/namei.c @@ -129,7 +129,7 @@ static int ufs_symlink (struct inode * dir, struct dentry * dentry, struct inode * inode; if (l > sb->s_blocksize) - goto out; + goto out_notlocked; lock_kernel(); inode = ufs_new_inode(dir, S_IFLNK | S_IRWXUGO); @@ -155,6 +155,7 @@ static int ufs_symlink (struct inode * dir, struct dentry * dentry, err = ufs_add_nondir(dentry, inode); out: unlock_kernel(); +out_notlocked: return err; out_fail: @@ -307,7 +308,7 @@ static int ufs_rename(struct inode *old_dir, struct dentry *old_dentry, ufs_set_link(new_dir, new_de, new_page, old_inode); new_inode->i_ctime = CURRENT_TIME_SEC; if (dir_de) - new_inode->i_nlink--; + drop_nlink(new_inode); inode_dec_link_count(new_inode); } else { if (dir_de) { @@ -354,7 +355,7 @@ out: return err; } -struct inode_operations ufs_dir_inode_operations = { +const struct inode_operations ufs_dir_inode_operations = { .create = ufs_create, .lookup = ufs_lookup, .link = ufs_link,