diff options
Diffstat (limited to 'fs/jfs/jfs_inode.c')
| -rw-r--r-- | fs/jfs/jfs_inode.c | 19 | 
1 files changed, 9 insertions, 10 deletions
diff --git a/fs/jfs/jfs_inode.c b/fs/jfs/jfs_inode.c index c1a3e603279..6b0f816201a 100644 --- a/fs/jfs/jfs_inode.c +++ b/fs/jfs/jfs_inode.c @@ -29,20 +29,20 @@  void jfs_set_inode_flags(struct inode *inode)  {  	unsigned int flags = JFS_IP(inode)->mode2; - -	inode->i_flags &= ~(S_IMMUTABLE | S_APPEND | -		S_NOATIME | S_DIRSYNC | S_SYNC); +	unsigned int new_fl = 0;  	if (flags & JFS_IMMUTABLE_FL) -		inode->i_flags |= S_IMMUTABLE; +		new_fl |= S_IMMUTABLE;  	if (flags & JFS_APPEND_FL) -		inode->i_flags |= S_APPEND; +		new_fl |= S_APPEND;  	if (flags & JFS_NOATIME_FL) -		inode->i_flags |= S_NOATIME; +		new_fl |= S_NOATIME;  	if (flags & JFS_DIRSYNC_FL) -		inode->i_flags |= S_DIRSYNC; +		new_fl |= S_DIRSYNC;  	if (flags & JFS_SYNC_FL) -		inode->i_flags |= S_SYNC; +		new_fl |= S_SYNC; +	inode_set_flags(inode, new_fl, S_IMMUTABLE | S_APPEND | S_NOATIME | +			S_DIRSYNC | S_SYNC);  }  void jfs_get_inode_flags(struct jfs_inode_info *jfs_ip) @@ -95,7 +95,7 @@ struct inode *ialloc(struct inode *parent, umode_t mode)  	if (insert_inode_locked(inode) < 0) {  		rc = -EINVAL; -		goto fail_unlock; +		goto fail_put;  	}  	inode_init_owner(inode, parent, mode); @@ -156,7 +156,6 @@ struct inode *ialloc(struct inode *parent, umode_t mode)  fail_drop:  	dquot_drop(inode);  	inode->i_flags |= S_NOQUOTA; -fail_unlock:  	clear_nlink(inode);  	unlock_new_inode(inode);  fail_put:  | 
