diff --git a/fs/reiserfs/xattr_acl.c b/fs/reiserfs/xattr_acl.c
index c303c426fe2ba6ffec8d708323026f36fbd40f90..a1a7e3530e17dc1f891985e1bd3cb9a8a32e34fc 100644
--- a/fs/reiserfs/xattr_acl.c
+++ b/fs/reiserfs/xattr_acl.c
@@ -194,7 +194,7 @@ static inline void iset_acl(struct inode *inode, struct posix_acl **i_acl,
 	spin_lock(&inode->i_lock);
 	if (*i_acl != ERR_PTR(-ENODATA))
 		posix_acl_release(*i_acl);
-	*i_acl = posix_acl_dup(acl);
+	*i_acl = acl ? posix_acl_dup(acl) : ERR_PTR(-ENODATA);
 	spin_unlock(&inode->i_lock);
 }