inode.c (fa3cacf544636b2dc48cfb2f277a2071f14d66a2) | inode.c (195c52bdd5d5ecfdabf5a7c6159efe299e534f84) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * 4 * Copyright (C) 2019-2021 Paragon Software GmbH, All rights reserved. 5 * 6 */ 7 8#include <linux/blkdev.h> --- 1082 unchanged lines hidden (view full) --- 1091ntfs_create_reparse_buffer(struct ntfs_sb_info *sbi, const char *symname, 1092 u32 size, u16 *nsize) 1093{ 1094 int i, err; 1095 struct REPARSE_DATA_BUFFER *rp; 1096 __le16 *rp_name; 1097 typeof(rp->SymbolicLinkReparseBuffer) *rs; 1098 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * 4 * Copyright (C) 2019-2021 Paragon Software GmbH, All rights reserved. 5 * 6 */ 7 8#include <linux/blkdev.h> --- 1082 unchanged lines hidden (view full) --- 1091ntfs_create_reparse_buffer(struct ntfs_sb_info *sbi, const char *symname, 1092 u32 size, u16 *nsize) 1093{ 1094 int i, err; 1095 struct REPARSE_DATA_BUFFER *rp; 1096 __le16 *rp_name; 1097 typeof(rp->SymbolicLinkReparseBuffer) *rs; 1098 |
1099 rp = ntfs_zalloc(ntfs_reparse_bytes(2 * size + 2)); | 1099 rp = kzalloc(ntfs_reparse_bytes(2 * size + 2), GFP_NOFS); |
1100 if (!rp) 1101 return ERR_PTR(-ENOMEM); 1102 1103 rs = &rp->SymbolicLinkReparseBuffer; 1104 rp_name = rs->PathBuffer; 1105 1106 /* Convert link name to utf16 */ 1107 err = ntfs_nls_to_utf16(sbi, symname, size, --- 38 unchanged lines hidden (view full) --- 1146 rp_name += err; 1147 rp_name[0] = cpu_to_le16('\\'); 1148 rp_name[1] = cpu_to_le16('?'); 1149 rp_name[2] = cpu_to_le16('?'); 1150 rp_name[3] = cpu_to_le16('\\'); 1151 1152 return rp; 1153out: | 1100 if (!rp) 1101 return ERR_PTR(-ENOMEM); 1102 1103 rs = &rp->SymbolicLinkReparseBuffer; 1104 rp_name = rs->PathBuffer; 1105 1106 /* Convert link name to utf16 */ 1107 err = ntfs_nls_to_utf16(sbi, symname, size, --- 38 unchanged lines hidden (view full) --- 1146 rp_name += err; 1147 rp_name[0] = cpu_to_le16('\\'); 1148 rp_name[1] = cpu_to_le16('?'); 1149 rp_name[2] = cpu_to_le16('?'); 1150 rp_name[3] = cpu_to_le16('\\'); 1151 1152 return rp; 1153out: |
1154 ntfs_free(rp); | 1154 kfree(rp); |
1155 return ERR_PTR(err); 1156} 1157 1158struct inode *ntfs_create_inode(struct user_namespace *mnt_userns, 1159 struct inode *dir, struct dentry *dentry, 1160 const struct cpu_str *uni, umode_t mode, 1161 dev_t dev, const char *symname, u32 size, 1162 struct ntfs_fnd *fnd) --- 451 unchanged lines hidden (view full) --- 1614 clear_nlink(inode); 1615 ni->mi.dirty = false; 1616 discard_new_inode(inode); 1617out3: 1618 ntfs_mark_rec_free(sbi, ino); 1619 1620out2: 1621 __putname(new_de); | 1155 return ERR_PTR(err); 1156} 1157 1158struct inode *ntfs_create_inode(struct user_namespace *mnt_userns, 1159 struct inode *dir, struct dentry *dentry, 1160 const struct cpu_str *uni, umode_t mode, 1161 dev_t dev, const char *symname, u32 size, 1162 struct ntfs_fnd *fnd) --- 451 unchanged lines hidden (view full) --- 1614 clear_nlink(inode); 1615 ni->mi.dirty = false; 1616 discard_new_inode(inode); 1617out3: 1618 ntfs_mark_rec_free(sbi, ino); 1619 1620out2: 1621 __putname(new_de); |
1622 ntfs_free(rp); | 1622 kfree(rp); |
1623 1624out1: 1625 if (err) 1626 return ERR_PTR(err); 1627 1628 unlock_new_inode(inode); 1629 1630 return inode; --- 226 unchanged lines hidden (view full) --- 1857 1858 if (!attr->non_res) { 1859 rp = resident_data_ex(attr, i_size); 1860 if (!rp) { 1861 err = -EINVAL; 1862 goto out; 1863 } 1864 } else { | 1623 1624out1: 1625 if (err) 1626 return ERR_PTR(err); 1627 1628 unlock_new_inode(inode); 1629 1630 return inode; --- 226 unchanged lines hidden (view full) --- 1857 1858 if (!attr->non_res) { 1859 rp = resident_data_ex(attr, i_size); 1860 if (!rp) { 1861 err = -EINVAL; 1862 goto out; 1863 } 1864 } else { |
1865 rp = ntfs_malloc(i_size); | 1865 rp = kmalloc(i_size, GFP_NOFS); |
1866 if (!rp) { 1867 err = -ENOMEM; 1868 goto out; 1869 } 1870 to_free = rp; 1871 err = ntfs_read_run_nb(sbi, &ni->file.run, 0, rp, i_size, NULL); 1872 if (err) 1873 goto out; --- 93 unchanged lines hidden (view full) --- 1967 for (i = 0; i < err; i++) { 1968 if (buffer[i] == '\\') 1969 buffer[i] = '/'; 1970 } 1971 1972 /* Always set last zero */ 1973 buffer[err] = 0; 1974out: | 1866 if (!rp) { 1867 err = -ENOMEM; 1868 goto out; 1869 } 1870 to_free = rp; 1871 err = ntfs_read_run_nb(sbi, &ni->file.run, 0, rp, i_size, NULL); 1872 if (err) 1873 goto out; --- 93 unchanged lines hidden (view full) --- 1967 for (i = 0; i < err; i++) { 1968 if (buffer[i] == '\\') 1969 buffer[i] = '/'; 1970 } 1971 1972 /* Always set last zero */ 1973 buffer[err] = 0; 1974out: |
1975 ntfs_free(to_free); | 1975 kfree(to_free); |
1976 return err; 1977} 1978 1979static const char *ntfs_get_link(struct dentry *de, struct inode *inode, 1980 struct delayed_call *done) 1981{ 1982 int err; 1983 char *ret; --- 46 unchanged lines hidden --- | 1976 return err; 1977} 1978 1979static const char *ntfs_get_link(struct dentry *de, struct inode *inode, 1980 struct delayed_call *done) 1981{ 1982 int err; 1983 char *ret; --- 46 unchanged lines hidden --- |