aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2009-02-06 11:35:57 -0500
committerChris Mason <chris.mason@oracle.com>2009-02-06 11:35:57 -0500
commit42f15d77df8a7e8a2feb15041d5d30710ee7f951 (patch)
tree5b6a3cdaab135c41848952874a6fab086b8b9f72
parent806638bce99f51deccbfedbe86ab3c5cf55a1d35 (diff)
Btrfs: Make sure dir is non-null before doing S_ISGID checks
The S_ISGID check in btrfs_new_inode caused an oops during subvol creation because sometimes the dir is null. Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/inode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index ddb0f0ecda6c..8f0706210a47 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -3491,7 +3491,7 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans,
3491 3491
3492 inode->i_uid = current_fsuid(); 3492 inode->i_uid = current_fsuid();
3493 3493
3494 if (dir->i_mode & S_ISGID) { 3494 if (dir && (dir->i_mode & S_ISGID)) {
3495 inode->i_gid = dir->i_gid; 3495 inode->i_gid = dir->i_gid;
3496 if (S_ISDIR(mode)) 3496 if (S_ISDIR(mode))
3497 mode |= S_ISGID; 3497 mode |= S_ISGID;