struct f2fs_inode_info *fi = F2FS_I(inode);
        nid_t xnid = fi->i_xattr_nid;
        int err = 0;
+       bool freeze_protected = false;
 
        f2fs_abort_atomic_write(inode, true);
 
        f2fs_remove_ino_entry(sbi, inode->i_ino, UPDATE_INO);
        f2fs_remove_ino_entry(sbi, inode->i_ino, FLUSH_INO);
 
-       if (!is_sbi_flag_set(sbi, SBI_IS_FREEZING))
+       if (!is_sbi_flag_set(sbi, SBI_IS_FREEZING)) {
                sb_start_intwrite(inode->i_sb);
+               freeze_protected = true;
+       }
        set_inode_flag(inode, FI_NO_ALLOC);
        i_size_write(inode, 0);
 retry:
                if (dquot_initialize_needed(inode))
                        set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
        }
-       if (!is_sbi_flag_set(sbi, SBI_IS_FREEZING))
+       if (freeze_protected)
                sb_end_intwrite(inode->i_sb);
 no_delete:
        dquot_drop(inode);